顾名思义,jmeter在做性能测试时,可以在不停止脚本的情况下修改负载压力,达到期望的测试效果。我们将通过Constant Throughput Timer(吞吐量计时器)和Beanshell服务器来组合完成。
1:在jmeter中添加Constant Throughput Timer。我们将通过设置“目标吞吐量”值来控制在测试中每分钟执行的请求数。由于我们要通过命令行更新此值,因此必须将其定义为参数。通过编写${__P(hits,1200)},默认值将设置为1200。
吞吐量将基于每个线程进行调整,重要的是要注意调整负载,因此尽量把运行时间加长一些以注意吞吐量的变化。所以我们加入了运行时间控制器以延长运行时间。
2:使用JMeter Beanshell作为服务器,以便发出Beanshell命令。我们通过调用beanshell函数来更新先前定义的“hits”参数。Beanshell是一个内置于JMeter中的Java源代码解释器。
在jmeter.properties上取消注释以下行:
重启jmeter,并在主目录下打开cmd查看端口运行状态
Netstat -an | find “9000”
在JMeter主目录下创建文件夹bsh,并添加一个名为update_parameter.bsh的.bsh文件,其中包含以下内容:
setprop("hits",args[0]);
在主目录下打开cmd命令,执行 dir bash\
文件调用setprop函数以通过第一个参数(args [0])中的值更新“hits”
现在能够在测试运行时调用创建的.bsh来更新“hits”。在主目录下通过以下命令将参数更新为每分钟“1200”个请求:
java -jar .\lib\bshclient.jar localhost 9000 .\bsh\update_parameter.bsh 1200
观察运行中的吞吐量,有明显的改变
你还在为找不到可练习的接口而烦恼吗?现在加入龙渊阁,我们手把手教你搭建属于自己的接口测试环境!
点击这里进入史上最具活力的测试交流平台!