您的位置:首页 > 移动开发

Appium+Robot Framework+Jenkins从环境搭建到测试执行实现移动端的自动化测试

2016-11-17 17:43 931 查看
WHAT HOW WHY,利用这三步来解释一下这篇文章吧!

WHY:为什么让开发来搞?原因是庞大的测试团队没人会,然后。。。公司就突发奇想,让研发的去做自动化测试调研(简单吐槽下。。。)

WHAT:自动化测试,断章取义,就是不用QA的人为干预,测试工作自动就完成了,有bug就看看log,最后甩锅给研发。Appium、Robot Framework、Jenkins的介绍请直接百度,这里就不粘了;

HOW:怎么用?废话不多说,直接干货;

系统环境:64位WIN7

一.Appium环境搭建

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,出现以下页面表示成功:




二.Robot Framework环境配置

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


三.利用Robot Framework编写测试用例

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


4.1. Robot FrameWork与Jenkins结合

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。


4.2.解决Jenkins中无法打开Robot FrameWork log.html的问题

使用Jenkins与Robor FrameWork做自动化持续集成的时候,执行自动化脚本后,查看执行日志时,会出现以下提示:



出现此问题是Jenkins增加的内容安全策略,默认情况下,禁止JavaScript,css等资源。



解决方案:

找到jenkins的安装目录下的jenkins.xml,修改此文件

修改前:

<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>

修改后:

<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' 'unsafe-inline';"
-jar "%BASE%\jenkins.war" --httpPort=8080</arguments>

重启jenkins,最好能再执行一下测试脚本,让它生成新的报告文件就行了。


后记

本文整合了Appium+Robot Framework+Jenkins,实现了android移动端的自动化测试,并部署到Jenkins这种持续集成环境上,实现正真意义上的自动化。而这种所谓的自动化还是需要人为驱动,例如:本文在Jenkins上执行测试用例,是手动去触发“立即构建”按钮来完成的,如果在配置测试Job时,去配置“构建触发器”触发条件,对于自动化就更近了一步,当然本文因为环境的一些原因没有去实现,有需要这里可以根据自己的情景去配置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息