15.6.2 Jenkins在自动化测试中的应用
Jenkins作为一个持续集成工具,在自动化测试中非常有用,可以帮助测试人员对自动化测试项目实现定时执行、测试结果发送报告、分布式执行等功能,无须再投入太多的人工在项目运维环节,有利于减少重复过程以节省时间、费用和工作量。下面以运行一个简单的测试脚本为例,创建一个Jenkins任务。
准备测试脚本。新建一个test_jenkins.py文件,添加两个测试用例test_01和test_02,其中test_01断言成功,test_02断言失败,代码如下:
# chapter15\test_jenkins.py
import pytest
def get_student_info(student_id):
students = {
1001: {"name": "tynam", "age": "21"},
1004: {"name": "yang", "age": "16"}
}
return students.get(student_id, "The student ID does not exist.")
def test_01():
student = get_student_info(1001)
assert student.get("name") == "tynam"
def test_02():
student = get_student_info(1004)
assert student.get("name") == "tynam"
if __name__ == "__main__":
pytest.main(["-s", "test_jenkins.py"])
安装SSH Agent插件。单击Jenkins主页左侧菜单【系统设置】,然后选择【插件管理】进入插件管理页面。在【Available plugins】可选插件下搜索“SSH Agent”,勾选后单击【Install】按钮进行安装,如图15-28所示。
图15-28 安装插件
挂载本地节点。单击Jenkins主页左侧菜单【系统设置】,然后选择【节点管理】进入节点管理页面。单击【New Node】按钮添加节点,【节点名称】填写“本地节点”,Type下选中【固定节点】,然后单击【Create】按钮创建,如图15-29所示。
图15-29 创建节点
节点配置。在节点配置页面,【Number of executors】(此节点执行并发构建的最大数目)填写2;【远程工作目录】(Jenkins在此节点下工作目录)填写D:\;【启动方式】选择通过Java Web启动代理,然后单击【保存】按钮,如图15-30所示。
图15-30 配置节点
安装curl程序。单击“本地节点”进入该节点,可以看到提示需要在Node节点上安装agent.jar文件并运行,如图15-31所示。但是使用提示的命令安装需要先安装curl程序,curl是一个功能强大的命令行工具,可以用来发送HTTP请求、FTP请求等,并且支持各种数据传输协议。
图15-31 提示安装agent.jar
进入curl下载页面(https://curl.se/download.html),根据操作系统下载二进制文件,Windows系统也可直接访问https://curl.se/windows/下载,如图15-32所示。
图15-32 下载curl
下载完成后进行解压,然后将~\curl-8.2.0_1-win64-mingw\bin目录下curl.exe配置到环境变量中,即可全局使用curl程序。
安装agent.jar并启动。根据图15-31提示的命令依次输入,例如Windows系统输入命令为:
curl.exe -sO http://localhost:8080/jnlpJars/agent.jar & java -jar agent.jar -jnlpUrl http://localhost:8080/computer/%E6%9C%AC%E5%9C%B0%E8%8A%82%E7%82%B9/jenkins-agent.jnlp -secret dd79934d1667ee467d5f05e660341578d595480136cfd81146ba52801eaa9f92 -workDir "D:/"
如图15-33所示。
图15-33 安装Agent并启动
Agent启动后进入Jenkins节点列表,可以看到名为“本地节点”的节点已是连接状态,如图15-34所示。
图15-34 查看节点状态
创建任务。进入Jenkins主页,单击左侧菜单栏中的【新建任务】创建测试任务,【任务名称】填写test_jenkins,选择【Freestyle project】自由风格任务,然后单击【确定】按钮进入下一步,如图15-35所示。
图15-35 创建项目
设置任务运行节点。在【General】下勾选【限制项目的运行节点】,在输入框中填写节点名称“本地节点”,如图15-36所示。
图15-36 设置运行节点
设置任务定时。在任务配置页面【构建触发器】下勾选【定时构建】复选框,然后填写H/15 * * * *,表示每15分钟构建一次,如图15-37所示。
图15-37 设置任务定时
定时构建字段遵循 cron 语法(但是与cron又略有不同),该字段每行包含5个字段,5个字段之间使用 TAB 或空格进行分隔。例如,* * * * *,第一个字段为MINUTE;第二个字段为HOUR;第三个字段为DOM;第四个字段为MONTH;第五个字段为DOW。具体描述如表15-1所示。
表15-1 定时字段说明
如果一个字段需要指定多个值,则可以按照优先顺序使用下面的运算符:
·*:指定所有有效值。
· M-N:指定范围值。
· M-N / X或* / X:在指定范围或整个有效范围内以 X 步长进行指定。
· A,B,...,Z:列举多个值。
添加执行命令。在【Build Steps】下添加一个【执行Windows批处理命令】,即在Windows命令行工具中执行命令,然后单击【保存】按钮进入任务主页。
添加的命令如下:
即进入test_jenkins.py文件所在的文件夹下,使用Python程序运行该文件,如图15-38所示。
图15-38 添加执行命令
任务构建。进入test_jenkins任务主页,单击左侧菜单栏中的【立即构建】,可看到任务立即运行了一次,如果不手动触发构建则根据设置的定时任务每15分钟触发一次。构建完成后,在test_jenkins任务主页可以看到构建情况,如图15-39所示。任务名称前有个绿色对勾表示构建成功,如果最近一次构建失败,则任务名称前是红色的叉叉。
图15-39 查看任务构建结果
查看任务执行过程。单击最近一次构建查看最新的构建情况,在构建页面中单击左侧菜单栏中的【控制台输出】即为构建的详细过程,如图15-40所示。可以看到先切换到E盘,然后进入chapter15文件夹下,最后运行了test_jenkins.py测试文件。测试文件中共收集了2条测试用例,一条用例测试通过,一条用例测试失败。
图15-40 查看构建过程