美文网首页JMeter学习笔记
JMeter 非GUI方式运行时动态设置线程组及传参

JMeter 非GUI方式运行时动态设置线程组及传参

作者: DC_ing | 来源:发表于2019-04-01 12:22 被阅读36次

在使用 JMeter 进行性能测试自动化时,可能会有如下需求:

  1. 指定运行多少线程,指定运行多少次;
  2. 访问的目标地址变化了,端口也变化了,需要重新指定。

上面的需求如果有 GUI 模式运行,这都不是问题,直接在脚本上进行修改即可以了;
但是性能测试自动化都是以非 GUI 模式运行的,每次执行前,都需要打开测试计划修改,那就比较麻烦了。

PS:以上设置方式在分布式测试时,不适用。

当然,是有解决办法的。下面来说说如何简单的搞定这些问题:

1. 指定运行多少线程

我们知道 JMeter 测试计划在运行 Sampler 之前,会先加载运行属性(jmeter.properties, system.properties等),那么我们可以借助属性来完成。

当然了,我们也不会傻到去修改这些配置文件,这多麻烦。JMeter提供了方法可以动态修改属性,在命令行使用 -J 来指定JMeter Properties。

(jmeter.bat -help | jmeter.sh -help可以看到帮助),使用__P() 函数来获取命令中指定的属性值。

 jmeter.bat -JthreadCount=2 -Jcycle=2 -n -t baidu.jmx -l baidu.jtl

-JthreadCount=2为baidu.jmx测试计划要指定的线程数

-Jcycle=2为baidu,jmx测试计划要指定的每个线程的迭代次数

在 baidu.jmx 测试计划中用${__P(threadCount,)}来获取threadCount的值;${__P(cycle,)}来获取cycle的值。

线程组设置

运行效果如下:


执行效果
  1. 访问的目标地址变化了,端口也变化了,重新指定:

JMeter 命令行通过-D来指定System Properties,类似于Jdk中我们用-D来指定一些系统属性,比如开启JMX远程监控。

在JMeter脚本中我们用__property()函数来获取,比如-Durl=www.baidu.com在测试计划中用${__property(url,,)}来获取

运行命令如下:

jmeter.bat -JthreadCount=2 -Jcycle=2 -Durl=www.baidu.com -Dport=80 -n -t baidu.jmx -l baidu.jtl

脚本如下:

脚本设置

如上使用-J -D在运行前动态设置属性,可以用来控制测试计划的执行,在非GUI方式运行时还是比较方便的。

自然性能测试自动化时我们可以利用这些命令行参数来动态指定属性,不用再修改脚本了。

通过外部设置不同的线程数,rampUp时间,持续运行时间使用同一个脚本测试不同的场景:

使用场景

执行命令:设置线程数为3,rampup时间为1s,持续执行45秒钟。

 sh jmeter.sh -JthreadCount=3 -JRampUp=1 -JDurationTime=45 -n -t /Users/lyh/Desktop/Script/CallInfoByTelNum.jmx -l /Users/lyh/Desktop/Script/CallInfoByTelNum.jtl

执行结果

执行结果

相关文章

  • JMeter 非GUI方式运行时动态设置线程组及传参

    在使用 JMeter 进行性能测试自动化时,可能会有如下需求: 指定运行多少线程,指定运行多少次;访问的目标地址变...

  • Jmeter线程组属性设置参数化

    在jmeter以非GUI模式运行时,可以提前使用__P函数来参数化线程属性,以此避免反复修改jmx脚本来设置线程属...

  • Jmeter 接口压测

    GUI 下载jmeter,启动jmeter.bat 线程组: 主要修改线程数和持续时间 邮件线程组,可以添加各种组...

  • Jmeter线程组设置

    Jmeter线程组设置

  • Jmeter中不同线程组的参数传递

    Jmeter跨线程组参数传递 引言:Jmeter中再同一个线程组中,参数传递可以使用 ${变量名} 的方式去传递参...

  • JMeter脚本录制

    一、增加jmeter线程组 二、设置jmeter的HTTP代理服务器 三、设置浏览器代理方式 四、进行脚本录制

  • Jmeter跨线程组传参

    传递顺序: 线程组1的值${aa} 需要传给线程组2使用。 需要使用的函数: __setProperty(aa...

  • Jmeter跨线程组传参

      我们知道,同一线程组中可以通过“正则表达式提取器”获取其中一个取样器的响应结果中的参数,直接传给线程组中的其他...

  • apache jmeter

    jmeter 动态测试接口 线程组 在使用线程组的过程中要控制好线程数量, 因贪玩设置了六千多,某台服务器一瞬间被...

  • 6.6-Jmeter5.X基础功能组件介绍+线程组和Sample

    Jmeter5.X基础功能组件介绍+线程组和Sampler 简介:讲解Jmeter里面GUI菜单栏主要组件 添加-...

网友评论

    本文标题:JMeter 非GUI方式运行时动态设置线程组及传参

    本文链接:https://www.haomeiwen.com/subject/ryzmbqtx.html