此前介绍过几篇关于Jenkins配置相关的文章,今天再来说说参数化构建和构建前删除已有的报告。在实际测试过程中,是需要测试几套环境的,不使用参数化构建的话,构建脚本就比较麻烦了;自然,已生成的报告,不删除再构建,发送的报告也就比较冗余。接下来就来说下这两个简单的配置。
参数化构建
参数化,这个词,相信大家都很熟悉,就不啰嗦了。在jenkins配置中,常规配置下,勾选参数化构建过程按钮。添加对应的参数,有凭证参数、字符参数、密码参数等,此处选择Active Choices Reactive Parameter,如下图所示:
如果没有该参数可以选择,则需要先安装插件,具体安装插件的步骤也不过多介绍了,在可选插件中搜索并安装即可。
将该插件安装好后,再次进入到已有job下配置,即可选到该参数,接下来就来介绍下如何具体进行参数化。
参数化过程
1.添加一个名为test的参数,返回值有A/B/C/D
可以输入对应参数的描述:
2.添加一个名为url的参数,在test参数中,如果选择A,url处则显示www.baidu.com
Referenced parameters需要填入test,test就是第一个参数名
3.继续添加pro、username、password参数,跟配置url参数一样配置即可
4.配置好参数并保存,来构建当前job,进入到构建页面,出现如下图所示页面
在test参数处是可以修改不同的值,如下
切换到B,则url、pro、username、password参数也对应变更,如下
这样配置后,就可以灵活运用到不同的测试环境中,构建脚本了,使用起来很是方便。
给一张实际job构建的参数传递图,如下所示:
传递的参数显示在控制台中,参数传递了,那如何在jmeter中实际应用呢?这就需要在jmeter中引用一个函数,_P
函数_P是一个简化版的属性函数,目的是使用在命令行中定义的属性。不同于函数_property,本函数没有提供选项用于设置保存属性值的变量。 另外,如果没有设置默认值,默认值自动设为1。之所以选择1,原因在于它对于很多常见测试变量都是一个合理值,例如,循环次数、线程数、启动线程耗时间 等。
在jmeter测试计划中设置如下:
这样就完成了参数传递的配置
构建前删除已有报告
在做自动化测试时,会有测试报告生成,报告名称一样并不及时处理的话,再次构建时,报告会加在已有报告中,导致冗余。解决该问题可以在job配置中的构建设置下,添加windows批处理命令操作即可如下图所示:
添加该参数后,输入批处理命令
cd D:\Jenkins\workspace\123\html
del /F /S /Q TestReport.html
cd D:\Jenkins\workspace\123\jtl
del /F /S /Q TestReport.jtl
保存该配置后,去构建job,则会先执行批处理命令再开始构建。
构建job,查看控制台日志如下:
遇到的问题
1.在配置批处理命令时,没有注意到顺序问题,导致没有实现预想的效果
由于先有ant操作,再添加的批处理命令操作,构建job下来,是当脚本执行完后再执行的批处理命令,导致生成的报告被删除。由此检查看,是因为顺序的问题导致,调整顺序即可。
2.参数化构建不填写Referenced parameters
不填写Referenced parameters参数,则会导致对应参数下显示不出值,需要引用第一个参数(基于第一个参数test)
上述两个问题都是小问题,但不仔细下,的确是会忽略掉的部分,需要多注意。参数化构建和构建前的删除操作就是这么的简单,相信阅读下来,肯定就能掌握。