Jmeter 自动循环执行,逐步加压

问题:
压力测试时,手工一个个加压效率较低

希望脚本循环执行,每次增加一点压力,生成原始数据报告

测试结束后,人工根据测试报告数据去检测压力情况即可

解决方法:

一、脚本中进程组参数化

外部传参用${__P(threadNum,1)}定义

见下图

 

 

不止线程组参数,若接口中调用的其他参数也可以通过命令行指定

二、bat脚本和jmx脚本在同一目录,bat脚本配置好加压策略后,运行即可

set PRO_DIR=%~dp0
set loop=1
set rampUp=0
set durTime=60
::For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
::For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)
for /f "delims=" %%a in ('wmic os get localdatetime /value') do set "%%a"
set time=%localdatetime:~0,14% 

cd "D:\apache-jmeter-5.1.1-ant-all plugins\apache-jmeter-5.1.1\bin"

for /l %%i in (10,10,10) do (
jmeter.bat -n -t %PRO_DIR%share.jmx -l %PRO_DIR%%time%_durTime#%durTime%_rampUp#%rampUp%_loop#%loop%_threadNum#%%i.jtl -JthreadNum=%%i -JrampUp=%rampUp% -JdurTime=%durTime% -Jloop=%loop%)
pause

bat脚本运行结束后,jmeter GUI界面添加任意的监听器格式,打开上述jtl文档后,即可查看报告

三、其他说明

命令行调用参数 -J 和 -G

1、格式:-J变量名=值 -G变量名=值

2、相同之处:设置jmeter属性,例如线程数、循环次数、ramp up-time等

3、不同之处:-J是设置本地jmeter属性;-G是设置server的jmeter属性(只有设置了远程机,开启了远程服务,才需要用到-G)

4、以设置本地jmeter属性为例,先在windows下编辑脚本,将线程数、循环次数、ramp up-time等参数化

若要手动加压,则直接命令行执行即可,参考如下

# 分布式调用
jmeter -n -t es.jmx -GthreadNum=1 -GdurTime=30 -Gstressmax=100 -l linuxjmx.jtl -Gpro="jmxmaster" -R 192.168.240.2,192.168.240.3 # 本地模式调用 jmeter -n -t es.jmx -JthreadNum=1 -JdurTime=30 -Jstressmax=100 -l linuxjmx.jtl -Jpro="jmxmaster"

 参考:

https://www.jianshu.com/p/03f4e864d94f

posted @ 2021-05-27 14:30  leo博客  阅读(1293)  评论(0编辑  收藏  举报