Jmeter命令行方式运行概述
之前写过一篇文章介绍如何在centos上部署jmeter来执行性能测试,链接如下:
https://blog.csdn.net/liwenxiang629/article/details/124140833
因为大多数linux服务器都是没有GUI界面的,这就需要我们通过命令行的方式来运行jmeter脚本,具体如下:
jmeter -n -t /opt/jmeter/script/test.jmx -l test2.jtl
参数含义
n 非gui运行
t 指定测试脚本/opt/jmeter/script/test.jmx
l 生成测试结果文件为.jtl格式,test2.jtl
相信上面这条命令大家并不陌生,工作中比较常用!在实际工作中我们会在windows上或者mac上调试jmeter脚本,然后将其保存脚本为***.jmx。然后把脚本拷贝到centos中通过上面的命令运行。最后脚本运行完毕后再把生成的.jtl文件拷贝到windows中查看脚本的详细运行结果即可。
Jmeter命令行方式运行优化
现在大家考虑这样一个场景,当我们做性能基线测试时,如果我们需要不断更改并发用户数和脚本循环执行次数该如何处理?我们总不能来回在linux和windows之间进行切换吧!
通常有两种方式来解决这个问题:
- 在jmeter中把并发数和循环次数作为两个参数,然后通过使用配置元件CSV Data Set Config ,从配置文件中读取信息并赋值给定义的参数,这种方式就不详细讲解了
- 重点介绍,使用__P() 函数,在线程组中,把线程数和循环次数参数化,如下图所示:
然后通过命令行参数进行并发数和循环次数的设计即可,如下所示
jmeter -n –t *.jmx -Jconcurrent_number=2 -Jcycles=5 -l log.jtl
这里需要解释一下__P() 函数。JMeter的测试计划在运行Sampler之前会先加载运行属性(jmeter.properties,system.properties等)文件,而且JMeter还提供了方法可以动态修改属性,在命令行中使用-J 来指定JMeter Properties,脚本里面使用__P() 函数来获取命令中指定的属性值,例如在这里:
并发数设置 ${__P(concurrent_number,1)},
循环次数设置 ${__P(cycles,1)},
上面的参数concurrent_number和cycles名称可以自定义,注意在命令行中的参数以 J开头(Jconcurrent_numbe 和Jcycles),就能够与脚本中的同名参数自动进行关联了。
怎么样?学会了吗?用上面介绍的两种方法就可以在使用命令行运行jmeter的场景下,很方便地设置并发数和循环次数这些经常变化的参数了。原创不易,如果文章帮到了你,劳烦点赞转发!