原创文章,谢绝转载。
一、前提
本次做性能测试,需求是需要在Linux下的非GUI模式下执行。但用命令行执行时,线程数需要改变,为了执行方便,不需要每次都在脚本中修改线程数,那么线程数都需要通过参数传递,执行时输入线程数就行,方便执行。
二、方法(通过jmeter.properties)
1、需要指定运行多少线程
JMeter测试在运行Sampler之前先加载运行属性(jmeter.properties,system.properties等),那么我们可以借助属性来完成。JMeter提供了方法可以动态修改属性,在命令行使用 -J 来指定JMeter Properties
(jmeter.bat -help | jmeter.sh -help可以看到帮助),使用__P() 函数来获取命令中指定的属性值。
线程数传参,可以用:${__P(threadNum,)}来获取线程数。
命令行加上:-JthreadNum=
线程组处设置:${__P(threadNum,)}
2、需要指定运行时间
执行时间传参,可以用:${__P(runTimer,)}来获取线程数。
命令行执行:-JrunTimer=
执行例子
./jmeter.sh -JthreadNum=500 -JrunTimer=300 -n -t /home/cg/jmeter/kms_select-thread.jmx -l /home/cg/jmeter/result/select_500.jtl -j /home/cg/jmeter/result/error_select_500.log
./jmeter.sh -JthreadNum=200 -JrunTimer=300 -n -t /home/cg/jmeter/kms_select-thread.jmx -l /home/cg/jmeter/result/select_200.jtl -j /home/cg/jmeter/result/error_select_200.log
./jmeter.sh -JthreadNum=100 -JrunTimer=300 -n -t /home/cg/jmeter/kms_select-thread.jmx -l /home/cg/jmeter/result/select_100.jtl -j /home/cg/jmeter/result/error_select_100.log./jmeter.sh -JthreadNum=50 -JrunTimer=300 -n -t /home/cg/jmeter/kms_select-thread.jmx -l /home/cg/jmeter/result/select_50.jtl -j /home/cg/jmeter/result/error_select_50.log
./jmeter.sh -JthreadNum=30 -JrunTimer=300 -n -t /home/cg/jmeter/kms_select-thread.jmx -l /home/cg/jmeter/result/select_30.jtl -j /home/cg/jmeter/result/error_select_30.log
./jmeter.sh -JthreadNum=10 -JrunTimer=300 -n -t /home/cg/jmeter/kms_select-thread.jmx -l /home/cg/jmeter/result/select_10.jtl -j /home/cg/jmeter/result/error_select_10.log
执行情况:
参考:Jmeter 获取属性 __P函数