WHAT HOW WHY,利用这三步来解释一下这篇文章吧!
WHY:为什么让开发来搞?原因是庞大的测试团队没人会,然后。。。公司就突发奇想,让研发的去做自动化测试调研(简单吐槽下。。。)
WHAT:自动化测试,断章取义,就是不用QA的人为干预,测试工作自动就完成了,有bug就看看log,最后甩锅给研发。Appium、Robot Framework、Jenkins的介绍请直接百度,这里就不粘了;
HOW:怎么用?废话不多说,直接干货;
系统环境:64位WIN7
1.下载JavaJDK,配置JDK环境变量
2.下载Android SDK,并配置环境变量,主要配置tools与platform-tools目录
3.下载Appium的windows版本:http://appium.io/
4.安装Appium,并配置环境变量,主要配置xxx\Appium\node_modules\.bin目录
5.检查Appium环境配置是否成功,cmd命令下,输入appium-doctor,出现以下页面表示成功:
1.Python
Robot Framework框架是基于python的,所以一定要有python环境
版本:python-2.7.6.msi 下载地址:https://www.python.org/downloads/
下载好Python后安装,配置环境变量,path配置:
a) D:\xxx\Python27
b) D:\ xxx \Python27\Scripts
c) D:\ xxx \Python27\Lib\site-packages
上述路径以自己安装路径为准。
2. wxPython,
wxPython是Python语言的一套GUI图形库;因为RIDE是基于这个库开发的,所以这个必须安装。
下载地址:https://wxpython.org/download.php
下载后直接安装即可
3. RIDE
RIDE是一款专门用来编辑Robot Framework用例的软件,
下载地址:https://github.com/robotframework/RIDE/releases,下载.exe可执行文件版本 即可
4. Robot Framework
安装之前确认Python环境变量已配置
下载地址:https://pypi.python.org/pypi/robotframework
安装方式:先把安装包解压,进到解压目录,cmd执行python setup.py install
5. Selenium2Library
这个是selenium2测试库,基于webdriver驱动
下载地址:https://pypi.python.org/pypi/robotframework-selenium2library(最好选择zip包下载)
安装方式:先把安装包解压,然后命令行进入解压目录,cmd执行python setup.py install,它会联网下载缺少的内容,首先会下载setuptools,它是后面一切安装的基础。setuptools安装成功之后会下载4个依赖库,在解压目录的src目录下的egg.info目录里,有一个requires.txt文件,里面有如下内容,他会自动匹配最合适的版本进行下载,最终完成后,可以在python27\Lib\site-packages目录下找到相关的目录,都是.egg结尾的目录。
6. pip
python的安装工具,下载地址:https://pypi.python.org/pypi/pip
安装方式:先把安装包解压,进到解压目录,cmd执行python setup.py install
7. Appium Library
移动端自动化测试需要appium的支持,确保已经安装appium的环境
下载地址:https://pypi.python.org/pypi/robotframework-appiumlibrary
安装方式:先把安装包解压,进到解压目录,cmd执行python setup.py install
1.安装好RIDE后,会在桌面生成一个RIDE图标,图标如下:
2.运行,双击启动,界面如下:
3.这里利用RIDE编写一个简单的测试用例,打开微信搜索好友
新建工程,注意将类型选择为Directory,可选择用例目录:
4.在刚刚建好的工程上点击右键,新建一个Test Suite,命名为wechatSuite
5.在第4步建好的wechatSuite上右键,新建一个Test Case,命名为searchFriends
6.在编写测试用例前,要先添加Selenium2Library和AppiumLibrary库,点击wechatSuite,在Edit标签页中点击Library
7.Library的name分别填写为Selenium2Library和AppiumLibrary,注意大小写敏感
8.第一次添加库完成后,库的文字可能为红色,表示未找到该库,需要重启一下RIDE使其重新加载。如果仍为红色,表示该库不存在,需要重新安装该库
9.按一下F5,可以进行关键字搜索,找到需要的关键字,例如接下来要用到的Open Application,直接搜索,可以看到有使用介绍
10.开始编写测试用例,点击searchFriends的case,然后选择Edit标签,在下面就可以编写测试用例。
测试用例代码:
Open Application http://127.0.0.1:4723/wd/hub platformName=Android platformVersion=6.0.1 deviceName=ONEPLUS A3000 appPackage=com.tencent.mm appActivity=com.tencent.mm.ui.LauncherUI unicodeKeyboard=True resetKeyboard=True
AppiumLibrary.Wait Until Page Contains Element name=通讯录 60
AppiumLibrary.Click element name=通讯录
AppiumLibrary.Click element id=com.tencent.mm:id/e8
AppiumLibrary.Click element name=添加朋友
AppiumLibrary.Click element id=com.tencent.mm:id/fo
AppiumLibrary.Wait Until Page Contains Element name=搜索 60
AppiumLibrary.Input text name=搜索 xxxxxxxxxxxx
AppiumLibrary.Click element id=com.tencent.mm:id/aty
AppiumLibrary.Wait Until Page Contains Element name=详细资料 60
AppiumLibrary.Click element name=更多
其中: platformVersion=6.0.1 根据自己设备的Android版本填写,在设置-->关于手机→Android版本 查看,deviceName=ONEPLUS A3000 根据自己设备的型号填写,在设置→关于手机→型号 查看
11.运行测试用例,勾选当前需要运行的测试用例,点击工具栏运行按钮,如果只运行单个用例的话,也可以切换到用例的Run标签页,点击“start”按钮。
运行信息:
运行信息显示会生成三个文件:Output.xml、Log.html、Report.html。重点查看Log.html和Report.html ,Log.html更关注脚本的执行过程的记录,Report.html更关注脚本的执行结果的展示。
12.查看测试报告
四. Robot FrameWork部署到CI
1.安装Jenkins
2.启动Jenkins,安装Jenkins的Robot Framework plugin插件
在Jenkins插件管理中,搜索Robot Framework plugin,直接安装
3.新建一个自动化测试job
构建一个自由风格的软件项目,输入一个项目名称
4.配置参数
a) 源码管理,有Git与Svn可选,根据自己的环境配置
b) 增加构建步骤,如果再Windows中搭建Jenkins,在构建中,选择“execute window batch command”
选中后,输入“pybot D:\Android\RobotFramwork-testCase\FeezuTest\FeezuSuite.txt”(这只是举个例子,具体执行哪个目录下的哪些case,根据实际情况决定)
c) 增加构建后操作步骤,选择“Publish Robot Framework test results”,红色选择部分
选中后,Directory of Robot output:填一个本地路径,要根据你的output文件放在哪里了(默认在Jenkins安装目录中workspace文件夹下面),默认可以不填。
Thresholds for build result:阀值设置,如80%和100%,测试用例执行成功率和通过率的设置。
保存配置,构建项目。
d) 构建项目,上述步骤一个基本的配置就完成了,立即构建。
上图是构建后的job首页,构建后,开始手机自动化测试,可以查看手机观看,下图为控制台输出报告:
e) 查看自动化测试log日志,点击首页上面“Open log.html”连接
点击后进入log界面,查看生成的日志(有可能打不开日志,可查看3.2的解决方案)
上述步骤可以完成一个完整的测试case。
使用Jenkins与Robor FrameWork做自动化持续集成的时候,执行自动化脚本后,查看执行日志时,会出现以下提示:
出现此问题是Jenkins增加的内容安全策略,默认情况下,禁止JavaScript,css等资源。
解决方案:
找到jenkins的安装目录下的jenkins.xml,修改此文件
修改前:
修改后:
重启jenkins,最好能再执行一下测试脚本,让它生成新的报告文件就行了。
本文整合了Appium+Robot Framework+Jenkins,实现了android移动端的自动化测试,并部署到Jenkins这种持续集成环境上,实现正真意义上的自动化。而这种所谓的自动化还是需要人为驱动,例如:本文在Jenkins上执行测试用例,是手动去触发“立即构建”按钮来完成的,如果在配置测试Job时,去配置“构建触发器”触发条件,对于自动化就更近了一步,当然本文因为环境的一些原因没有去实现,有需要这里可以根据自己的情景去配置。