本篇将分享如何在Jenkins上创建一个任务来自动化依次运行多个性能测试用例,并汇总整体的结果,得到在不同线程数下的API响应时间。例如下表:
注意:关于测试计划中线程组具体如何创建这里不是重点,请参看JMeter官方文档或者其它文章,这里只介绍如何将不同线程数下的测试串联起来,并通过脚本把结果汇总起来,即一键式的测试,这样的测试非常适合放在Jenkins上,可以快速的得到测试汇总结果。
步骤如下
1.创建测试计划(TestPlan)
将线程组中的参数“线程数(Number of Threads)”提取为变量,每次运行的时候输入,这样就可以在运行测试的时候才指定线程数,实现自动化。具体是在Thread Group 的Thread Properties中将Number of Threads设置为${__P(threadCount,)}然后保存。在用jmeter.bat(在JMeter安装目录的bin目录下)启动测试的时候用如下命令输入参数:
jmeter.bat -JthreadCount=<你要测试的线程数> -n -t <jmx文件> -l <要保存的jtl结果文件的路径>
现在,我们就可以通过一个脚本的循环体来一次执行不同的线程数的测试了,就像下面这样(伪码):
loop ( threadNum in {100, 200, 300, 400, 500})
do
jmeter.bat -JthreadCount=threadNum -n -t <jmx文件> -l <要保存的jtl结果文件的路径>
sleep(sometime)
done
2. 生成聚合报告
然后等测试完成后,再用jmeter.bat生成聚合报告,命令如下:
jmeter.bat -g <上个命令中jtl结果文件的路径> -o <聚合报告生成的路径>
我们到聚合报告的目录下看一下会发现会有一个index.html的文件,这就是针对当前的线程数的测试产生的聚合报告。打开会发现里面有一个聚合表,展示了测试的一些指标: