jmeter CLI Mode 传参实现动态设置用户数

一.需求

CLI 运行模式下每次运行想要传入不同的用户数,比如寻找瓶颈值的场景,需要运行多次设置不同的用户数。

二.解决思路

查看官方API Apache JMeter - User's Manual: Getting Started

api CLI Mode 一节中提到可以使用如下参数做属性的替换,其中-D可定义系统变量 -J可设置本地JMeter属性

针对JMeter的属性和变量,主要有这三部分JMeterVariables、JMeterProperties和SystemProperties

在 JMeter 中,JMeterVariables、JMeterProperties 和 SystemProperties 都是变量或属性的容器,但它们之间有一些区别。

  1. JMeterVariables:JMeterVariables 是 JMeter 中的变量容器,用于存储测试计划中定义的变量。它是一个类似于 Map 的对象,可以使用类似于 Map 的方法来访问和修改变量。在测试计划中的其他元件中,您可以使用 ${variableName} 表达式来引用 JMeterVariables 中的变量。

  2. JMeterProperties:JMeterProperties 是 JMeter 中的属性容器,用于存储 JMeter 的配置属性。它是一个类似于 Map 的对象,可以使用类似于 Map 的方法来访问和修改属性。您可以使用 jmeter.properties 文件或 -J[prop_name]=[value] 命令行参数来设置 JMeterProperties 中的属性。在测试计划中的其他元件中,您可以使用${__P(prop_name)} 表达式来引用 JMeterProperties 中的属性。

  3. SystemProperties:SystemProperties 是 Java 虚拟机中的属性容器,用于存储系统属性。它是一个类似于 Map 的对象,可以使用类似于 Map 的方法来访问和修改属性。您可以使用 -D[prop_name]=[value] 命令行参数或 Java 系统属性文件来设置 SystemProperties 中的属性。在测试计划中的其他元件中,您可以使用 ${__P(prop_name)} 表达式来引用 SystemProperties 中的属性。

可以在线程组中增加一个Debug Sampler ,查看运行时的参数

从以上信息可以得出,我们使用-J 参数传递的是JMeter本地属性参数,那么引用方式就是 ${__P(prop_name)},我们只需要定义一个全局变量,并且直接引用即可。 这里面使用到的函数 ${__P(prop_name)},如果没有传参的话有个默认值,默认值为1

我设置的默认值是2并在线程组中引用变量(注意变量的引用是${variableName})

这样可以先在GUI当中进行调试,看,线程组一共运行了两遍。

使用CLI 模式运行,就可以看到传入参数50后,使用了参数运行。我一共是三个sampler,所以有summary 有50*3

小Tips:

参数的引用如{users}、{__P(myVar,2)} 前后不要有空格喔

分享结束,❥(^_-)!

相关推荐
柠檬不萌只是酸i7 小时前
day11 性能测试(4)——Jmeter使用(黑马的完结,课程不全)直连数据库+逻辑控制器+定时器
jmeter·jmeter定时器·jmeter直连数据库·jmeter逻辑控制
代码小念7 小时前
Jmeter 性能压测-Tomcat连接数
java·jmeter·tomcat
美团测试工程师1 天前
Jmeter的性能测试
jmeter
测试老哥1 天前
Jmeter的三种参数化方式
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·压力测试
虫无涯2 天前
【超详细实战攻略】Jmeter逻辑控制器中if控制器、模块控制器、测试片段的使用方法
jmeter·接口测试·性能测试·接口依赖
虫无涯2 天前
Jmeter如何对UDP协议进行测试?
网络协议·jmeter·udp
北冥有渔jy2 天前
Jmeter分布式部署测试
分布式·jmeter
柠檬不萌只是酸i3 天前
Jmeter直连数据库,jar包下载
数据库·jmeter·jar
小码哥说测试4 天前
Postman高阶技能:Collection集合批量运行!
自动化测试·软件测试·测试工具·jmeter·测试用例·postman·测试工程师