- 背景
1、在上一篇【将JMETER+ANT移植到LINUX环境下运行】基础上
2、想要实现在jenkins上,当项目构建成功之后,自动执行Jmeter测试用例。
3、执行之后的测试报告显示在构建项目上
内容一、构建空白项目,执行jmeter脚本
1、由于只是测试该功能是否正常,所以需要在jenkins上创建一个空项目即可;
2、选择JDK
3、选择构建Ant
4、保存配置,点击立即构建,会自动执行jemter中的脚本,若执行成功,需要进入报告生成目录查看报告情况
问题:遇到【Build step 'Invoke Ant' marked build as failure】的情况。
百度了好久,大概推定是权限问题,但是我的jenkins的账号是管理员权限。全局变量设置也没有问题。
最后看到我上传的测试用例压缩包的所有者是admin,而非jenkins,修改之后为jenkins之后,再次执行显示正确。
修改文件所有者和组:
1、cd 进入该jenkins目录下
2、chown -R jenkins Jmeter #修改所有者change own,将jmeter的所有者修改为jenkins,-R表示将其文件下的所有文件均修改
3、chgrp -R jenkins Jmeter #修改组change group,将jmeter的组修改为jenkins,-R表示将其文件下的所有文件均修改
内容二、内容一中生成的报告,需要切换到ant中配置的报告路径查看不是很方便,增加在构建项目中html报告输出显示
1、若没有添加HTML报告,当前构建项目中不会有HTML报告这个内容(如下图)
2、若希望在构建项目结束后,可以在项目中显示html报告这个内容,该内容可以快速找到你的报告,并查看
需要安装的插件有:HTML Publisher,安装完成后,会在构建后操作中以下显示;
a、HTML directory to archive 表示报告路径。若该报告产生在该工作区,只要填写工作区的相对路径即可。如:我的项目为test1,我的报告产生在test1/TechPlatform/Result_log/html下,那么我只要填写/TechPlatform/Result_log/html即可。
b、index page 表示在构建项目中显示的报告内容。*.html表示显示所有的报告,即报告路径下存在多个报告,可以显示多个;若你只想要显示特定某一个,将名字写成你需要的那个即可。若你写的名称路径中不存在,在构建项目中不存在,会显示为空白的
3、执行结果,在工作区会显示html report的内容
4、点击查看,若报告目录下存在多个报告,分开显示;
显示是zip压缩包的形成,需要下载,由于报告路径下会存在很多份测试报告
问题:报告没有样式
原因:jenkins由于自身原因将样式给关闭了,需要去执行脚本将他打开即可
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")】,该方式比较方便,但是这个方式若jenkins重启之后,会失效,需要重新设置。
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")】
问题:由于ant,执行一次会产生一份时间戳的报告。若只想要产生一份文件。
解决1、修改ant中的build.xml配置文件,将时间去掉。但是会产生另外一个问题,第一次执行的内容,在第二次执行时,没有被覆盖。故第二次执行的报告会包含第一次的,不满足要求;
解决2、使用jenkins实现。在执行ant之前,执行一下shell先将html和jtl目录下的内容删除;