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 &