背景介绍:在Linux服务器上搭建了一套jenkins环境,运行selenium的环境为windows环境。按照网上的做法:
1、为jenkins配置一个windows系统的slave,用于运行前端测试用例。这里我设置该slave的标签为windows。
2、在jenkins中新建一个自由风格的任务,该任务运行测试脚本并展示HTMLTestRunner报告。
具体的做法如下:
1、添加slave
系统管理-->管理节点-->新建节点,具体的设置如下,
保存成功后,在节点管理界面可以看到该slave
这个时候slave是无法工作的。相当于只是在jenkins中申请了一个slave的位置,还没有关联任何实际的计算机。
接下来进入实际要作为slave的计算机,登录jenkins,并点击节点管理中的slave机器的图标可以看到
图中可以看到有2种方式可以将agent和jenkins关联起来。我一开始采用了第一种:Launch agent from browser的方式,但是在connect后遇到各种报错,果断放弃尝试第二种方式:Run from agent command line
a) 先点击slave.jar下载slave文件,然后将该文件拷贝到工作目录下,并且在该目录下新建一个bat脚本,脚本内容为
界面上:java -jar slave.jar -jnlpUrl ****这段话。
b) 保存好后,双击脚本即可运行,当在运行窗口查看到结果显示“connected”,表明连接成功。注意该窗口不可关闭,否则agent的状态将变为offline的。
2、在jenkins新建一个任务运行前端测试任务。勾选:Restrict where this project can be run,并在“Label Expression”指定新添加的slave的标签。这样就能指定当前任务在新建的slave上运行。
指定在slave上执行的操作:
在我的项目中我使用的是HTMLTestRunner生成html报告,需要使用插件HTML Publisher plugin。
Publish HTML report的配置中"HTML directory to archive"中的路径为salve机器上存放HTML文件的路径。如下图所示本任务名称为UI,则需要填写的内容为"UI_Report"。
完整配置如下:
运行后,可以看到生成了HTML的显示按钮:
点击"HTML Report"可以查看到报告内容
可以看到这个报告只显示了内容,丢掉了格式,很不好看。没办法,jenkins对html文档的格式做了限制。若要解决这个问题,可以参考:https://testerhome.com/topics/9476。该文对此作了详细的介绍。
一开始,由于我在项目中使用的是HTMLTesRunner生成的HTML,选择的操作为“publishing selenium html report ”,结果发现在解析报告的时候报错:Unable to parse report.html: java.lang.NumberFormatException: null。在git上找到了答案:publishing selenium html report 只能用来展示selenium生成的报告。
好了,到此结束。