JMeter命令模式下动态设置线程组和持续时间等动态传参
一、前言
在我们使用命令行进行脚本压测的时候,线程数一般是写死的,每次想要修改的时候,都是需要通过jmeter的GUI界面,这种方法比较繁琐,那么有没有比较好的解决方案呢,答案肯定是有的。
二、解决方案
改进前
./jmeter -n -t CloudStorage/CloudStorage.jmx -l CloudStorage/CloudStorage.jtl
1、指定运行多少线程
JMeter提供了方法可以动态修改属性,在命令行使用 -J 来指定JMeter Properties,使用__P() 函数来获取命令中指定的属性值
那么可以修改为:
./jmeter -JthreadNum=20 -Jtime=300 -Jtime=10 -n -t CloudStorage/CloudStorage.jmx -l CloudStorage/CloudStorage.jtl
参数说明:
JthreadNum=20为CloudStorage.jmx测试计划要指定的线程数
-Jcycle=300为log.jmx测试计划要指定的每个线程的迭代次数
-Jtime=10为log.jmx测试计划要指定的持续运行时间
2、修改CloudStorage.jmx文件,接收动态属性的值
在CloudStorage.jmx测试计划中用{__P(threadNum,)}来获取threadNum的值;{__P(cycle,)}来获取cycle的值,${__P(time,)}来获取time的值
备注:
当访问的URL和端口都修改了,可以使用 Durl=www.baidu.com -Dport=80,来动态传值,命令行为:
jmeter.bat -JthreadCount=2 -Jcycle=2 -Durl=www.baidu.com -Dport=80 -n -t baidu.jmx -l baidu.jtl
脚本为:
三、小结
使用-J -D在运行前动态设置属性,可以用来控制测试计划的执行,在非GUI方式运行时还是比较方便的。自然性能测试自动化时我们可以利用这些命令行参数来动态指定属性,不用再修改脚本了。
参考:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)