GVKun编程网logo

Python + RobotFramework +RIDE环境搭建(pycharm robotframework环境)

2

对于Python+RobotFramework+RIDE环境搭建感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍pycharmrobotframework环境,并为您提供关于Appiumrobo

对于Python + RobotFramework +RIDE环境搭建感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍pycharm robotframework环境,并为您提供关于Appium robotframework-appium (ios 客户端测试)环境搭建、Appium+robotframework 自动化之软键盘的调起(文本框无法输入值)、jenkins+robotframework、Python + Robotframework + Appium 之APP自动化测试实践(一)的有用信息。

本文目录一览:

Python + RobotFramework +RIDE环境搭建(pycharm robotframework环境)

Python + RobotFramework +RIDE环境搭建(pycharm robotframework环境)

一、Python 安装

打开 WEB 浏览器访问 https://www.python.org/downloads/windows/ ,一般就下载 Windows installer,32-bit表示是 32 位机子的,64bit 表示 64 位机子的。

 安装:直接双击下一步即可,注意安装过程勾选Add python to path。

按 Win+R 键,输入 cmd 调出命令提示符,输入 python:若安装成功则会进入python编辑模式,Ctrl+Z退出。

 异常:若提示找不到命令,那就说明你没有添加环境变量,手动添加环境变量即可

二、wxPython 安装

说明:它是Python语言的跨平台GUI工具包,由于RIDE基于这个库开发的,所以这里也需要安装。

下载: https://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1/wxPython2.8-win64-unicode-2.8.12.1-py27.exe/download

安装:直接双击下一步即可

 或者:打开cmd窗口,输入 pip install wxPython ,提示Successfully ……即可。

RobotFramework 安装

说明:RF是用于验收测试和验收测试驱动开发的通用测试自动化框架。

安装:打开cmd窗口,输入 pip install robotframework,提示Successfully ……即可。

四、RIDE 安装

说明:RIDE是RF框架测试数据的轻量级直观编辑器。

安装:打开cmd窗口,输入 pip install robotframework-ride ,提示Successfully ……即可。

接口测试需要用到的库

1.安装:打开cmd窗口,输入 pip install requests ,提示Successfully ……即可

2.安装:打开cmd窗口,输入 pip install  robotframework-requests,提示Successfully ……即可,这个库封装的HTTP

3.安装:打开cmd窗口,输入pip install robotframework-databaselibrary,提示Successfully ……即可,这个库是用来操作数据库

4.安装:打开cmd窗口,输入pip install robotframework-redislibrary,提示Successfully ……即可,这个库是用来操作redis

  UI测试需要用到的库安装

1.根据浏览器不同,选择对应的浏览器驱动,选择浏览器驱动时要对应浏览器版本。

1)Mozilla GeckoDriver(Firefox) 

https://github.com/mozilla/geckodriver/releases

2)Google Chrome Driver 
https://sites.google.com/a/chromium.org/chromedriver/ 
https://chromedriver.storage.googleapis.com/index.html?path=2.28/

3)Microsoft Edge Driver(IE) 
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

将下载的压缩包解压后,将chromedrive.exe复制到Python的安装目录下

 2.安装SeleniumLibrary库

安装:打开cmd窗口,输入pip install robotframework-seleniumlibrary,提示Successfully ……即可,这个库封装的selenium

Appium robotframework-appium (ios 客户端测试)环境搭建

Appium robotframework-appium (ios 客户端测试)环境搭建

一、 简介

1.1摘要

本人测试新人,最近在搞ios客户端的自动化,准备采用robotframework-appium来实现自动化测试,一边学习一边总结,此安装说明文档是基于mac系统10.11版本,第一次发经验贴,说明中如有错误纰漏请不吝指教。
—————以下属个人理解,有错误请各位指正,想直接进入主题的,请直接跳到1.2章节————
安装Robotframework-Appium框架,大致划分为三个部分(1)基础软件的安装,主要包括Xcode,ios模拟器,command line tools等(2)Appium的安装(3)robotframework的安装。一般来说安装好(1),(2)就可以进行自动化测试,具体的方式是写自动化测试脚本(可采用python,java等语言,脚本中包含测试用例实现步骤的代码以及对每一个测试case的断言)通过appium server去驱动模拟器/真机中的app,执行所编写的测试用例并进行判断。
目前robotframework比较热门,主要它相对上面提到的方式个人感觉主要有两点优势:(1)编写测试用例简单化,基本不需要写代码。rf框架采用“关键字”方式编写测试用例,比如它把“向某文本框中输入文本”这一个本来需要写几行代码的实现的过程封装成关键字“文本框输入文本”(在此只是举例,具体关键字的名字需要查询),这样我们直接调用该关键字,然后传入一些必要的参数,如文本框的id、你要输入的文本等,就可以实现该步骤。(2)用例的维护及多人协作较方便。如果采用appium写脚本,测试用例就是一大推代码,如果不是自己写的话阅读起来非常麻烦,而且后期添加测试用例非常麻烦。而rf采用关键字的方式(也支持中文关键字),用例写起来很简洁,易阅读。而且rf提供的UI界面ride为编写用例的模块化提供便利,后期扩充用例比较简单,利于维护。
总之rf相对于单纯用Appium实现自动化还是有很大优势的,当然其实并没有改变自动化实现的本质,感觉是在appium基础上又做了更高层的封装,让使用者操作起来更简单。当然自动化不是万能的,一些场景很难依靠工具或者框架去判断是否达到了预期,比如音视频的通话质量等,很多场景目前还是必须依赖手工测试,所以自动化用例最好覆盖的场景是(1)冒烟测试(2)编写主干流程的测试用例,用例不要写的太细,用于提高版本回归测试的效率。

1.2 参考资料

1.参考了论坛中@debugtalk 的关于appium搭建的帖子,收货很大。
2.谷歌百度

二、安装步骤

前面的话:
(1) 后面的安装步骤基本涵盖了全部所需要的安装内容,但并不是事无巨细,有些简单软件的安装例如xcode,command line tools等,大家自行百度谷歌即可,安装比较简单,一般就是一句命令行的事。
(2) 在使用mac 终端中输入命令行安装软件的方式,遇到最多的问题就是权限问题,如果你输入某安装指令后,终端中提示“… not permitted..”之类的就是很可能说明要管理员权限,这时候在 安装命令前面加上sudo,然后输入开机密码即可完成安装。
(3)采用命令行安装是一种在线的安装方式,如果有些软件无法下载,则需要翻墙,或者搜一下别的安装方式,如采用下载安装包等方式进行安装。再次就不做具体介绍了,一般安装都可以通过命令行或者安装包至少两种方式安装,下文中大部分采用命令行安装方式。

2.1基础工具的安装

(1)mac系统准备<=10.11,笔者是在10.11版本安装的。
(2)Homebrew安装,终端中输入:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
(3)安装xcode。appstore中直接下载
(4)模拟器,用的xcode自带的默认模拟器,9.3版本。
(5)CommandLine Tools安装。打开终端,输入xcode-select—install,如遇权限问题输入sudo xcode-select—install。
(6)python 2.7安装。Mac中自带python2.7的。检测方法终端输入python --version,会返回python 2.7.X版本号。如果没有请谷歌如何安装python。
(7)pip安装,终端中输入:(sudo)easy_install pip 。easy_install和pip都是用来下载安装Python一个公共资源库PyPI的相关资源包的,在Python2.7的安装包中,easy_install.py是默认安装的,而pip需要我们手动安装。

2.2 Appium的安装

(1)node.js和npm的安装,终端输入:(sudo)brew install node。
(2)appium环境检测工具的安装,终端输入:npm install appium-doctor –g。安装成功后,终端输入:appium-doctor –ios。终端会核对每项安装appium的准备环境,缺什么对应安装什么即可,正常情况下安装上面的安装步骤执行完后,输入doctor命令,终端最后会输出:AppiumDoctor Everything looks good, bye!
(3)安装appium server。我们平时所说的appium就是它!方法很多推荐使用gui安装办法。安装步骤是:
打开网址https://bitbucket.org/appium/appium.app/downloads/.dmg的最新版本下载,在mac上双击安装即可。笔者下载的是appium-1.5.3.dmg。,找到后缀名为
(4)Appium Client Libraries。终端输入:(sudo)pip install robotframework-appiumlibrary。上面那个是官方提供的,另外建议安装另一个依赖库,终端输入(sudo)pip install robotframework-mobilelibrary,这个是对robotframework-appiumlibrary的扩展,并且许多关键字的说明都是中文。

2.3 RobotFramework的安装

(1)安装wxpython。终端输入:brew install wxpython。
安装这个的时候花费了不少精力。Wxpython对系统中一些包的版本有要求。例如我在安装wxpython时,终端提示pip list中的”six”这个东西的版本过低,我用pip命令进行更新该文件: pip install -U six,但升级也失败。后来谷歌百度了解到,Mac系统在10.11版本启用了更高的安全性保护机制:系统完整性保护System Integrity Protection (SIP)。简单来讲就是更加强制性的保护系统相关的文件夹。开发者不能直接操作相关的文件内容。
所以做法是1.关闭SIP 2.更新系统相关文件pip install -U XXXX 3. 恢复SIP,保证系统安全。
关闭的SIP的步骤是:
1.点击Mac电脑的苹果图标
2.选择 重新启动
3.按住 command+R,直到进入还原模式
4.选择实用工具,然后点击 终端
5.输入 csrutil disable 按下回车
6.重启电脑。这样就将“SIP“关闭了
恢复的SIP的步骤是:
1.点击Mac电脑的苹果图标
2.选择 重新启动
3.按住 command+R,直到进入还原模式
4.选择实用工具,然后点击 终端
5.输入 csrutil enable 按下回车
6.重启电脑。这样就将“SIP“关闭了
(2)安装RobotFramework
(sudo)pip install robotframework==2.9.2
(3)安装RIDE
(sudo)easy_install robotframework-ride

此时就完成了RF-Appium的安装,你可以在终端中输入pip list查看安装的各个包,正常情况下,终端输出中应包含robotFramework(版本号),robotFramework-ride(版本号),robotframework-appiumlibrary(版本号),robotframework-mobilelibrary(版本号),wxpython(版本号)等。
在终端中输入:ride.py就运行启动了了rf框架界面了。

Appium+robotframework 自动化之软键盘的调起(文本框无法输入值)

Appium+robotframework 自动化之软键盘的调起(文本框无法输入值)

以前我在博客中记录过隐藏软键盘的方法:hide keyboard

昨天我在做自动化的时候,碰到了一个问题。

问题描述:

点击元素后页面跳转到登录的页面,需要输入用户名和密码后,才能登录。

这个场景大家应该能理解。

定位登录页面的时候,软键盘能调起。

脚本运行的时候,文本框无法输入内容。定位没有错误,后来分析,问题就是软键盘没有调起。

 

解决办法:

1.unicodeKeyboard=True  resetKeyboard=True  这两个从脚本中剔除。因为他们会调用appium的输入法。

2,把手机中的appium输入法从应用中删除。(设置--应用)

3,完成了前两步后,重启电脑。发现用手机默认的“百度输入法”就可以完美的调起软键盘了。

 

 

至此,关于软键盘,我们分享了好几个关键字了。

大家有空多练习。

jenkins+robotframework

jenkins+robotframework

创建robotframework容器

可参考Openbmc的

下载jenkins容器

#sudo docker pull jenkins/jenkins

测试jenkins

  • host内创建jenkins home目录
#mkdir jenkins_home
  • 启动容器
#sudo docker run  -v /mnt/ram0/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime -p 10240:8080 jenkins/jenkins

-v /mnt/ram0/jenkins_home:/var/jenkins_home -> 挂载host目录到容器
-v /etc/localtime:/etc/localtime -> 同步host与容器时间
-p 10240:8080 -> 映射jenkins 8080端口到host 10240端口

  • 浏览器输入127.0.0.1:10240,显示jenkins登录界面

jenkins安装robot framework 插件

Todo

jenkins调用robotframework的容器

需要修改jenkins容器的启动参数

build后打开robotframework报告失败

编译jenkins容器中的/usr/local/bin/jenkins.sh,在exec java开头的那行增加参数,修改后如下

exec java -Dhudson.model.DirectorybrowserSupport.CSP="sandBox allow-scripts; default-src 'none'; img-src 'self' data: ; style-src 'self' 'unsafe-inline' data: ; script-src 'self' 'unsafe-inline' 'u    nsafe-eval' ;" -Duser.home="$JENKINS_HOME" ${FUTURE_OPTS} "${java_opts_array[@]}" -jar ${JENKINS_WAR} "${jenkins_opts_array[@]}" "$@"

创建job执行测试

  • build参数
ROBOT_DATA=/mnt/ram0/openbmc-test-automation-master
ROBOT_OUTPUT=/mnt/ram0/robotlog
ROBOT_CASE=ipmi/test_ipmi_device_id.robot
docker run \
-v ${ROBOT_DATA}:/opt/test \
-v ${ROBOT_OUTPUT}:/opt/log \
-i 93b55ffb403f \
robot -v OPENBMC_HOST:${BMC_IP} -v IPMI_USERNAME:${BMC_USERNAME} -v IPMI_PASSWORD:${BMC_PASSWORD} -d /opt/log -l log_${BUILD_ID}.html -r report_${BUILD_ID}.html /opt/test/${ROBOT_CASE}

Python + Robotframework + Appium 之APP自动化测试实践(一)

Python + Robotframework + Appium 之APP自动化测试实践(一)

前面的文章已经介绍了Robotframework+Appium的安装及小试牛刀(For Android)

下面来个简单的实践,话不多说,还以是计算器为例,直接上代码,详情如下:

 1 *** Settings ***
 2 Library           AppiumLibrary
 3 
 4 *** Test Cases ***
 5 case1
 6     [Documentation]    Test open app
 7     Open Application    http://localhost:4723/wd/hub    platformName=Android    platformVersion=7.1    deviceName=Kemi    appPackage=com.android.calculator2    appActivity=.Calculator
 8 
 9 case2
10     [Documentation]    Test addition
11     Click Element    com.android.calculator2:id/digit_9                          # 点击数字 9
12     Click Element    accessibility_id=plus                                       # 点击 + 号
13     Click Element    xpath=//android.widget.Button[contains(@text,''7'')]          # 点击数字 7
14     Click Element    android=new UiSelector().description(\"equals\")            # 点击 = 号
15     ${actual_text}   Get Text    com.android.calculator2:id/result               # 获取计算结果
16     Should Be Equal As Strings    ${actual_text}    16                           # 验证结果等于16
17     sleep    2                                                                   # 设置等待2S
18     Click Element    com.android.calculator2:id/clr                              # 点击清除键
19 
20 case3
21     [Documentation]    Test subtraction
22     Click Element    com.android.calculator2:id/digit_8                          # 点击数字 8
23     Click Element    accessibility_id=minus                                      # 点击 - 号
24     Click Element    xpath=//android.widget.Button[contains(@text,''2'')]          # 点击数字 2
25     Click Element    accessibility_id=equals                                     # 点击 = 号
26     Click Element    com.android.calculator2:id/clr                              # 点击清除键
27 
28 case4
29     [Documentation]    Test close app
30     Click Element    accessibility_id=More options                               # 点击更多选项
31     Click Element    xpath=//android.widget.TextView[contains(@text,''Open source licenses'')]
32     sleep    5                                                                   # 设置等待5S
33     Press Keycode    4                                                           # 模拟返回键
34     Close Application                                                            # 关闭当前应用

如上,testApp.robot脚本中包含四个小用例,Test open app / Test addition / Test subtraction / Test close app 。启动Appium服务端,在编辑器里运行脚本结果截图如下:

 

在手机上也可以看到代码中描述的用例在自动运行。

 

更多实践见后续文章~

关于Python + RobotFramework +RIDE环境搭建pycharm robotframework环境的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Appium robotframework-appium (ios 客户端测试)环境搭建、Appium+robotframework 自动化之软键盘的调起(文本框无法输入值)、jenkins+robotframework、Python + Robotframework + Appium 之APP自动化测试实践(一)的相关知识,请在本站寻找。

本文标签: