jmeter+Jenkins 自动化性能测试高级用法

巧用 jmeter 的-J 选项传递动态参数,搭配 Jenkins 的 build with parameter,让自动化性能测试更加便利!!!


为了更好的阅读体验,可以点击下面👇链接阅读,关注**大话性能**,可以持续免费学习工作测试技能干货!

http://dwz.cn/NNW9Wm5G

1 问题背景

前两天,自己在搭建好了 jmeter+Jenkins 自动化性能测试后思考,若有时候我们需要修改并发数、测试时长或者请求地址变了之类的,难道我们需要一个个的去修改脚本么?有么有更加便利的方法?

2 解决方法

利用 Jmeter 命令行下动态化参数传递和 Jenkins 的 build with parameter。(大家有更好的方法,欢迎大家公众号里微我,分享出来一起进步)

3 具体操作

我们知道 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

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

这样每次构建都可以动态的传递参数值了,不用再手工去修改脚本。

4 简要验证

经过上面的配置后,接下来进行简要验证,配置是否正确。大家在点击 build with parameter 按钮后,弹出如下对话框,在这里我填写的线程数目是 15,测试时长是 30s。

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


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

大家可持续关注大话性能公众号,不断学习测试实战技能和高薪岗位内推。


↙↙↙阅读原文可查看相关链接,并与作者交流