基于Jenkins开展集群式APP自动化测试

jenkins介绍

Jenkins 是一个可扩展的持续集成引擎。

主要用于:
持续、自动地构建/测试软件项目。
监控一些定时执行的任务。

Jenkins拥有的特性包括:
易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。
易于配置-所有配置都是通过其提供的web界面实现。
集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
生成JUnit/TestNG测试报告。
分布式构建支持Jenkins能够让多台计算机一起构建/测试。
文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。

安装方法

1,下载Jenkins

Jenkins官方网址: http://Jenkins-ci.org/

下载最新包,一个war包

2,安装

命令行运行 java -jar jenkins.war

3,运行

安装完成后在浏览器中输入http://localhost:8080/jenkins/,出现以下画面,表示安装成功

Jenkins集成git CI Jenkins集成功能测试_分布式

配置Jenkins

首先选择系统管理项,进入如下页面:

Jenkins集成git CI Jenkins集成功能测试_jenkins_02


滑动到下方可以看见管理的选项,我们先下载安装Jenkins所需的插件:

Jenkins集成git CI Jenkins集成功能测试_Jenkins集成git CI_03


Jenkins集成git CI Jenkins集成功能测试_Jenkins_04


选择可选插件,过滤出我们想要的插件,例如maven,这个时候过滤出来的插件很多,我们无法一一了解这些插件的作用,最快速无脑地做法就是都勾选上,然后点击直接安装,当然花点时间去一一了解也是可以的,看时间安排,我们这个APP自动化测试项目所需要的主要是两个插件,一是maven,用来提供项目构建功能,二是SVN,用来获取项目源码,部署一个CI系统需要的最低要求是,一个可获取的源代码的仓库,一个包含构建脚本的项目,当然如果项目使用Git做代码管理的话,就需要下载Git插件了,这个不多说了。

另外还需配置一下项目在本机上环境地址,主要是Java开发环境地址和maven的环境地址,打开下图配置项:

Jenkins集成git CI Jenkins集成功能测试_Jenkins集成git CI_05

这里需要配置一下你的JAVA_HOME地址

Jenkins集成git CI Jenkins集成功能测试_分布式_06

以及你的MAVEN_HOME地址

Jenkins集成git CI Jenkins集成功能测试_Jenkins_07


这里MAVEN_HOME因为是Mac的系统,如果maven安装在个人的目录,例如/Users/**/Downloads/develop_tools/Environment_tools/apache-maven-3.5.0,将不会起作用,原因未知,解决方法就是将maven的环境变量地址配置到和Java一样的资源库/Library目录下。

如果之前没有安装过也可以选择自动安装,不过第一次运行项目时可能会非常耗时,还是建议使用安装好的地址。

配置测试项目

1,点击新建按钮,新建一个测试项目:

Jenkins集成git CI Jenkins集成功能测试_jenkins_08

因为我们的自动化测试项目是利用maven做项目构建的,所以我们这里选择构建一个maven项目,点击下面的保存会进入第二步,项目配置

2,项目参数配置

Jenkins集成git CI Jenkins集成功能测试_jenkins_09


我们现在的测试项目是用SVN做代码管理的,所以我们勾上图中第一个按钮,另外为了实现分布式,让多台手机同时执行测试案例,我们使用参数化构建的方法,动态去更新测试文件中的配置信息,配置有如下几个关键的参数配置:

Jenkins集成git CI Jenkins集成功能测试_自动化测试_10


Jenkins集成git CI Jenkins集成功能测试_Jenkins_11


上面有三个参数都是标识设备的,其中最后一个参数代表测试机的Udid,可以用来标识唯一设备,分布式也就是说我们的一个测试项目可以在多台设备上并行开展自动化测试,这需要我们对每台测试机器都配置一个测试项目,测试的项目与机器是对应的,因此我们在命名时可以采用项目名加项目版本号加测试机型号的方式,例如aldbtest-3.0.8-HUAWEI NXT-AL10。

接下来配置项目源码的地址:

Jenkins集成git CI Jenkins集成功能测试_分布式_12

我们项目使用SVN做代码管理,因此我们配置好对应项目版本的SVN地址,并点击add按钮加入具有操作权限的SVN账号

还有两个需要配置的地方是构建触发器和Build部分,配置如下:

Jenkins集成git CI Jenkins集成功能测试_Jenkins_13


这个默认应该是选好的,不必更改。

Jenkins集成git CI Jenkins集成功能测试_Jenkins集成git CI_14


由于测试项目是个maven项目,所以我们这边需要指定maven的依赖目录。点击保存,看到页面直接进入这个测试项目:

Jenkins集成git CI Jenkins集成功能测试_Jenkins_15


点击返回面板可以看到一个测试项目的列表

Jenkins集成git CI Jenkins集成功能测试_jenkins_16


我们现在的这个测试项目是基于Appium的自动化测试项目,启动Appium服务,在测试机上安装好测试包,点击列表右端的启动按钮,Jenkins会从源码管理的仓库里下载项目源码并执行指定的测试案例,我们想要的多机并行只要依次执行启动测试项目就可以,如果嫌手动依次启动麻烦,也可以构建一个批处理命令执行这些测试项目。