JMeter多脚本间的启动延时

JMeter作压测时,当须要多个jmx脚本依次执行时,须要用到“启动延时”,即间隔可设置的时间后启动运行下一个jmx脚本。shell

实现“启动延时”的方法有2个。bash

方法一、利用JMeter线程组中的"Startup delay"参数测试

如上图,调度器(Scheduler)中有2个参数,持续时间(Duration)和启动延时(Startup delay),Duration用的比较多,能够限定测试的持续时间。spa

当jmx脚本不止1个时,若是须要全部jmx脚本都依次执行就须要用到Startup delay了。线程

Startup delay    # 从当前时刻开始延迟多长时间开始运行

咱们能够一次性的建立全部的测试脚本,每一个测试脚本依据具体的测试需求设定不一样的Startup delay时间,好比脚本0的Startup delay时间为0(直接启动),code

脚本1的Startup delay时间为1000,脚本1的Startup delay时间为2000(以此类推)。blog

因为要把脚本放到Linux环境中运行,能够写一个shell脚本test.sh来作到“一键启动”,还须要建立1个包含全部测试脚本的testdata文件夹,以下:io

test.sh文件:class

#!/bin/bash
#author:jiatest

# 使用 . 号来引用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 &