测试驿栈-由浅入深学性能 性能测试连载 (16)-动态吞吐量场景设计
性能答疑 QQ 群:697244251
动态吞吐量概述
顾名思义,jmeter 在执行压力测试时,可以在不停止脚本的情况下修改吞吐量阀值,测试额定吞吐量下的各项性能指标。我们可以通过Constant Throughput Timer(吞吐量计时器)和 Beanshell 服务器来组合完成。
吞吐量定时器
在 jmeter 中添加 Constant Throughput Timer
1-1
此图表示在当前活动线程组下,吞吐量阀值是 1200/min,可以换算成 20/s
1-2
1-3
图 1-2 和 1-3 表示将这个阀值做成了全局属性并且进行换算。我们通过设置吞吐量阀值来控制运行过程中的吞吐量。由于后面我们将通过命令行动态更新此值,因此必须将其定义为变量。
运行时间控制器
尽量把运行时间加长一些去观察吞吐量的变化。所以加入了运行时间控制器以延长运行时间。如图 1-4
1-4
9000 运行端口开放
使用 JMeter Beanshell 作为服务器,用来执行 Beanshell 命令。通过调用 beanshell 函数来动态更新之前定义的 “hit” 参数。Beanshell 是一个内置于 JMeter 中的 Java 源代码解释器
在 jmeter.properties 上取消注释以下行
重启 jmeter,并在主目录下打开 cmd 查看端口运行状态
Netstat -ano | findstr “9000”
bsh 动态参数编辑
在 JMeter 主目录下创建文件夹 bsh,并添加一个名为 update_parameter.bsh 的.bsh 文件,其中包含以下内容:
setprop("hits",args[0]);
在主目录下打开 cmd 命令,执行 dir bash\
参数调用
文件调用 setprop 函数以通过第一个参数 (args [0]) 中的值更新 “hit”
现在能够在测试运行时调用 bsh 函数来更新 “hit” 了。在 jmeter 根目录下通过以下命令将参数更新为每分钟 “1200” 个请求:
java -jar .\lib\bshclient.jar localhost 9000 .\bsh\update_parameter.bsh 1200
观察运行中的吞吐量,有明显的改变