Jenkins持续集成在自动化测试中的应用
Jenkins持续集成
Jenkins 是基于Java 开发的一种持续集成工具,是一个开放源代码的CI服务器,它的可扩展架构使它不仅是一个构建管理系统,也成为一个通用的开发生命周期的系统。
Jenkins的优点:
- 易于安装和配置
- 支持分布式构建
- 支持环境配置矩阵
- 支持JUnit/TestNG等测试报告
- 可追踪依赖关系
1.1 Jenkins环境搭建
Jenkins环境搭建有2种方式:
一、tomcat+jenkins
二、通过jenkins.exe应用程序进行安装。
13.1.1 Jenkins安装前的准备。
1.从我的网盘下载安装文件。
网盘下载地址:http://pan.baidu.com/s/1o8nMMHO
2.安装JDK
点击 安装文件进行安装。
默认下一步下一步安装即可,如果想安装到其他盘,安装的路径选其他路径。
本人的安装路径是C:\Program Files\Java\jdk1.7.0_17
安装完成后需要设置环境变量从而使编译器正常使用。右击“计算机”选择“属性”选择左边“高级系统设置”à选择上面“高级”选项卡点击右下角“环境变量”按钮。
环境变量配置的方法/步骤:
1). 在系统变量里点击新建,变量名填写JAVA_HOME,变量值填写JDK的安装路径,在这里就填写“C:\Program Files\Java\jdk1.7.0_17”。
2). 在系统变量里点击新建变量名填写CLASSPATH,变量值填写。“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar”,注意不要忘记前面的点和中间的分号。
3). 在系统变量里找到Path变量,这是系统自带的,不用新建。双击Path,由于原来的变量值已经存在,故应在已有的变量后加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”。注意前面的分号。
验证的方法:在运行框中输入cmd命令,回车后输入javac,按回车出现以下画面
13.1.2 Jenkins安装方式一:tomcat+jenkins。
tomcat+Jenkins 安装部署步骤:
- 1. 在D盘新建一个Jenkins文件夹,把下载下来的tomacat放到里面,如下:
D:\jenkins\tomcat-7.0.42
2.把jenkins.war放到 D:\jenkins\tomcat-7.0.42\webapps 下。
3.启动tomcat,运行jenkins。
4.访问Jenkins。
通过浏览器访问:http://localhost:8080/jenkins/。
5. Jenkins默认端口是8080,有的时候可能8080端口被占用了,就可以通过修改tomcat
Conf下的server.xml文件。
修改之后再次访问。
http://localhost:8077/jenkins/
13.1.3 Jenkins安装方式二:jenkins.exe应用程序安装。
jenkins.exe应用程序安装步骤:
1.点击安装文件 。
2.点下一步…下一步完成安装。
3.安装完成通过浏览器访问:http://localhost:8080/
4.重启电脑后,如果Jenkins没启动,右键我的电脑->管理->服务和应用程序->服务->选中Jenkins服务,进行启动。
1.2 Jenkins 相关的配置
1.2.1 Jenkins邮件服务器的配置
配置步骤如下:
1.系统管理->系统设置->邮件->高级
可以勾选 “通过发送测试邮件配置” 测试此配置能否连通, 如果收到以下邮件,恭喜
This is test email #1 sent from Jenkins。
2. 对构建的job 添加邮件发送的步骤。
这样每次build后都会发送邮件给这个接收者。
1.2.2 jenkins配置构建触发器
jenkins在新建Job的时候,可以配置构建触发器,有如下3种:
【Build after other projects are built】:在其他项目触发的时候触发,里面有分为三种情况,也就是其他项目构建成功、失败、或者不稳定时候触发项目;
【Poll SCM】:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。我的配置如下:*/5 * * * * (每5分钟检查一次源码变化);
【Build
periodically】:周期进行项目构建(它不管源码是否发生变化),我的配置如下:
0 2 * * * (每天1:00 必须build一次源码);
1.2.3 配置Jenkins用户和权限
一)配置用户注册
1. 点击左侧的系统管理->安全设置。
2.点“启用安全”。
设置如上图,保存后系统管理中就出现管理用户的选项。页面右上角也会出现登录/注册的选项。
3. 点击注册。
账户:test
密码:123123
点击sign up按钮,提示你现在已经登录.
二)配置用户权限
1.点击左侧的系统管理—>Configure Global Security 。
2.选择授权策略中的安全矩阵或者项目矩阵授权策略。
说明:安全矩阵和项目矩阵授权策略的配置是一模一样的,唯一的区别是项目矩阵授权策略支持在Job的配置页面再次配置授权策略。
添加用户到矩阵中,如下图:
各种权限如下(在配置页面将鼠标放到该权限上即可查看帮助):
其中有一些比较特别的权限:
1)最大的权限是Overall的Administer,拥有该权限可以干任何事情。
2)最基本的权限是Overall的Read,用户必须赋予阅读的权限,不然什么都看不到。
3)Job的Discover权限是一个奇葩的权限,帮助说Discover比Read的级别更低。如果匿名用户(没有访问job的权限)直接访问一个Job的Url将重定向到登陆页面。(经测试,这个权限应该是被废弃了。)
备注:如果有个用户被赋予了Overall的Read,并没有被赋予Job的Read权限,那么该用户就无法访问job。原因:没有权限。
其他都是一些基本的权限,大家根据自己的需求选择。
1.3 使用Jenkins实现自动化脚本执行
1.3.1 添加节点。
做自动化测试过程中,脚本根据需要在不同的台机器上运行,需要添加不同的节点运行相应的脚本。
添加节点步骤:
1.点”系统管理”->管理节点,默认有个master的主节点。
2.点“新建节点”->输入节点名称:slave1 ->勾选Dumb Slave ->点OK。
完成选项设置->点”Slave”。
【of executors】:跑RF脚本,填1即可;
【Remote FS root】:远程工作目录,比如:D:\jenkins_workspace;
【labels】:标签,新建JOB的时候,可以根据节点的标签来选择用那个节点运行,比如:test2
【Launch method】:启用方法选 Launch slave agents via Java Web Start 或者 Launch slave agents via Java Web Start JNLP (有些版本是这个);
3.保存完,节点列表列表出现新建的节点记录,但是节点还没启动,还不能使用。
4.点列表上的节点->提供了3种启动节点的方法(个人选用第三种:jar包形式)。
5.点slave.jar 下载 slave.jar 启动文件。
6.在DOS命令下切换到slave.jar包的目录下,执行命令。
java -jar slave.jar -jnlpUrl http://localhost:8080/computer/slave1/slave-agent.jnlp ->启动节点。
启动之后,刷新列表,新节点打叉就消失了,这样节点就启动了。
13.3.2 安装插件。
添加插件步骤:
1.点“系统管理”->“插件管理”->查看插件,目前是没安装任何插件。
2.从我的网盘下载robot framework 插件安装文件robot.hpi->在插件高级选项里添加插件 ->完成插件的安装。
网盘下载地址:http://pan.baidu.com/s/1nuMK4pN
安装插件
完成插件安装。
3.查看插件列表的已安装tab。
13.3.3 新建任务。
新建job步骤:
1.点“新建”->输入job名称:logintest,构建方式(选第一个)->点OK。
2.设置新Job运行的节点。
3.选择执行方式(选第一个)。
【Execute Windows batch command】:按Windows命令执行
【Execute Shell】: 按shell命令执行
【Invoke Ant】: 调用Ant执行
【Invoke top-level Maven targets】: 调用顶层Maven的目标
Robot Framework执行脚本的原理:
1).经过观察每个脚本运行前都有 command: pybot.bat
2).其实是RF通过C:\Python27\Scripts下的pybot.bat 运行指定的脚本。
3).可以在DOS下,通过pybot.bat –help 查看pybot.bat相关参数。
4.输入执行的命令:pybot.bat D:\project\Educational\Test_project3\Builti库.txt
5.设置构建之后的操作步骤(选择:Publish Robot Framework test resuits)
【Publish Robot Framework test resuits】:表示把脚本执行的结果写到测试报告中。
6.设置测试结果的阈值(数值在1~100之间)。
7.点保存完成新Job的配置。
- JOB列表的图标(
)表示构建失败;
- JOB列表的图标(
)表示还未构建;
- JOB列表的图标(
)表示构建成功;
- JOB列表的图标(
)表示不稳定;
8.查看Job详情->“点立即构建”构建JOB
9.构建完成之后,会自动统计测试用例执行的结果,并生成报表。
10.点 Robot Results 查看结果。