zoukankan      html  css  js  c++  java
  • JMeter多脚本间的启动延时

    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 &
  • 相关阅读:
    Zend Framework 项目 index.php 的问题
    《MySQL 必知必会》读书总结
    phpstorm 无法格式化代码
    Windows 下 zip 版的 MySQL 的安装
    配置Windows下的PHP开发环境
    phpstorm 激活服务器
    《DOM Scripting》
    《JavaScript高级程序设计》
    sql 查找所有已经分配部门的员工
    sql 表的连接 inner join、full join、left join、right join、natural join
  • 原文地址:https://www.cnblogs.com/ailiailan/p/12058387.html
Copyright © 2011-2022 走看看