Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

时间:2021-11-11 17:07:41

此前介绍过几篇关于Jenkins配置相关的文章,今天再来说说参数化构建和构建前删除已有的报告。在实际测试过程中,是需要测试几套环境的,不使用参数化构建的话,构建脚本就比较麻烦了;自然,已生成的报告,不删除再构建,发送的报告也就比较冗余。接下来就来说下这两个简单的配置。

参数化构建

参数化,这个词,相信大家都很熟悉,就不啰嗦了。在jenkins配置中,常规配置下,勾选参数化构建过程按钮。添加对应的参数,有凭证参数、字符参数、密码参数等,此处选择Active Choices Reactive Parameter,如下图所示:

Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

如果没有该参数可以选择,则需要先安装插件,具体安装插件的步骤也不过多介绍了,在可选插件中搜索并安装即可。

Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

将该插件安装好后,再次进入到已有job下配置,即可选到该参数,接下来就来介绍下如何具体进行参数化。

参数化过程

1.添加一个名为test的参数,返回值有A/B/C/D

Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

可以输入对应参数的描述:

Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

2.添加一个名为url的参数,在test参数中,如果选择A,url处则显示www.baidu.com

Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

Referenced parameters需要填入test,test就是第一个参数名

3.继续添加pro、username、password参数,跟配置url参数一样配置即可

4.配置好参数并保存,来构建当前job,进入到构建页面,出现如下图所示页面

Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

在test参数处是可以修改不同的值,如下

Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

切换到B,则url、pro、username、password参数也对应变更,如下

Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

这样配置后,就可以灵活运用到不同的测试环境中,构建脚本了,使用起来很是方便。

给一张实际job构建的参数传递图,如下所示:

Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

传递的参数显示在控制台中,参数传递了,那如何在jmeter中实际应用呢?这就需要在jmeter中引用一个函数,_P

函数_P是一个简化版的属性函数,目的是使用在命令行中定义的属性。不同于函数_property,本函数没有提供选项用于设置保存属性值的变量。 另外,如果没有设置默认值,默认值自动设为1。之所以选择1,原因在于它对于很多常见测试变量都是一个合理值,例如,循环次数、线程数、启动线程耗时间 等。

在jmeter测试计划中设置如下:

Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

这样就完成了参数传递的配置

构建前删除已有报告

在做自动化测试时,会有测试报告生成,报告名称一样并不及时处理的话,再次构建时,报告会加在已有报告中,导致冗余。解决该问题可以在job配置中的构建设置下,添加windows批处理命令操作即可如下图所示:

Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

添加该参数后,输入批处理命令

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,查看控制台日志如下:

Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

遇到的问题

1.在配置批处理命令时,没有注意到顺序问题,导致没有实现预想的效果

由于先有ant操作,再添加的批处理命令操作,构建job下来,是当脚本执行完后再执行的批处理命令,导致生成的报告被删除。由此检查看,是因为顺序的问题导致,调整顺序即可。

Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

2.参数化构建不填写Referenced parameters

不填写Referenced parameters参数,则会导致对应参数下显示不出值,需要引用第一个参数(基于第一个参数test)

上述两个问题都是小问题,但不仔细下,的确是会忽略掉的部分,需要多注意。参数化构建和构建前的删除操作就是这么的简单,相信阅读下来,肯定就能掌握。