问题背景
jmeter脚本在远程服务器上执行,怎么自动化更新脚本并且执行?
解决方法
利用Jmeter 命令行下动态化参数传递和Jenkins的build with parameter。
具体操作
我们知道JMeter测试计划在运行Sampler之前会先加载运行属性(jmeter.properties,system.properties等)文件,而且JMeter还提供了方法可以动态修改属性,在命令行使用 -J 来指定JMeter Properties,脚本里面使用__P() 函数来获取命令中指定的属性值。
1、编写jmx脚本
在需要动态化参数的地方按照如下方式填写,此处是对线程数和持续时间进行了定义。

2、用命令行运行时候增加如下选项。

-JthreadCount=${thread_num}为脚本指定的线程数
其中thread_num变量值可以动态的从Jenkins页面自己填写。
-Jduration=${test_time}为测试计划要指定的测试时长
其中test_time变量值可以动态的从Jenkins页面自己填写。
3、配置Jenkins的build with parameter
安装插件build with parameter

然后在构建的按钮就会变成

这样每次构建都可以动态的传递参数值了,不用再手工去修改脚本。
简要验证
经过上面的配置后,接下来进行简要验证,配置是否正确。大家在点击build with parameter按钮后,弹出如下对话框,在这里我填写的线程数目是15,测试时长是30s。

点开构建运行时的控制台输出,可以看到,jmeter命令行正确的获取了前面填写的线程数值和测试时长。OK,大功告成!!!


ps:大家也可以用类似的方法尝试进行便捷的控制分布式压测。
网友评论