JMeter做压测时,当需要多个jmx脚本依次执行时,需要用到“启动延时”,即间隔可设置的时间后启动运行下一个jmx脚本。
实现“启动延时”的方法有2个。
方法一、利用JMeter线程组中的"Startup delay"参数
如上图,调度器(Scheduler)中有2个参数,持续时间(Duration)和启动延时(Startup delay),Duration用的比较多,可以限定测试的持续时间。
当jmx脚本不止1个时,如果需要所有jmx脚本都依次执行就需要用到Startup delay了。
Startup delay # 从当前时刻开始延迟多长时间开始运行
我们可以一次性的创建所有的测试脚本,每个测试脚本依据具体的测试需求设定不同的Startup delay时间,比如脚本0的Startup delay时间为0(直接启动),
脚本1的Startup delay时间为1000,脚本1的Startup delay时间为2000(以此类推)。
由于要把脚本放到Linux环境中运行,可以写一个shell脚本test.sh来做到“一键启动”,还需要创建1个包含所有测试脚本的testdata文件夹,如下:
test.sh文件:
#!/bin/bash
#author:jia# 使用 . 号来引用testdata下的所有jmx文件
. ./testdata/*nohup jmter -n -t test_00.jmx > test_00.log 2>&1 &
nohup jmter -n -t test_01.jmx > test_01.log 2>&1 &
nohup jmter -n -t test_02.jmx > test_02.log 2>&1 &
nohup jmter -n -t test_03.jmx > test_03.log 2>&1 &
2>&1 的作用:将标准输出、标准错误输出合并后重定向到test_00.log。
nohup &的方式可以把test.sh放到后台运行,避免前台断开连接打断test.sh的运行。
方法二、利用shell的sleep命令
也就是直接在test.sh脚本中加入延时,test.sh变为:
nohup jmter -n -t test_00.jmx > test_00.log 2>&1 &
sleep 10m # 等待10分钟后再执行下一个命令
nohup jmter -n -t test_01.jmx > test_01.log 2>&1 &
sleep 10m
nohup jmter -n -t test_02.jmx > test_02.log 2>&1 &
sleep 10m
nohup jmter -n -t test_03.jmx > test_03.log 2>&1 &
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】