jmeter执行给定加载所用的总时间

jmeter执行给定加载所用的总时间,jmeter,Jmeter,我正在使用以下参数执行负载测试: threads=4 ramp_up_period=90 loop_count=60 根据上面的数字,我的假设是,四个线程中的每一个都将在22.25秒内创建,这个4线程周期将重复60次 以下是负载测试总结报告: 根据JMeter手册,爬坡期为: 爬升周期告诉JMeter需要多长时间才能“爬升”到所选的全部线程数。如果使用了10个螺纹,则斜升 周期为100秒,那么JMeter需要100秒才能获得全部10秒 线程启动并运行。每个线程将启动10(100/10)秒

我正在使用以下参数执行负载测试:

threads=4

ramp_up_period=90

loop_count=60
根据上面的数字,我的假设是,四个线程中的每一个都将在22.25秒内创建,这个4线程周期将重复60次

以下是负载测试总结报告:

根据JMeter手册,爬坡期为:

爬升周期告诉JMeter需要多长时间才能“爬升”到所选的全部线程数。如果使用了10个螺纹,则斜升 周期为100秒,那么JMeter需要100秒才能获得全部10秒 线程启动并运行。每个线程将启动10(100/10)秒 在上一个线程开始之后。如果有30个线程和一个 爬升周期为120秒,则每个连续线程将 延迟4秒

因此,根据上述场景,使用上述线程组参数执行负载测试的大致总时间为:

总时间=上升周期*循环计数

在我的例子中,它的计算结果是90*60=5400秒,但根据summariser,总时间是74秒

JMeter版本为
2.11


在我的理解中有什么问题吗?或者JMeter有什么问题吗?

如果您在没有并发的情况下工作,TotalTime将是这样的。在多线程环境中工作时,当线程3仍在启动时,线程1可能已经在执行第二次调用。

最初,JMeter将启动一个线程,该线程将在循环控制器下执行某些操作。30秒后第二个线程将加入,30秒后第三个线程将启动,最后在第90秒第四个线程将启动

从90秒开始,4个线程将执行“循环控制器下的内容”

无法确定需要多长时间,尤其是在负载下。如果需要负载测试持续约N秒,可以使用中的
调度程序下的
持续时间
输入

如果您想在满足某些条件的情况下强制停止测试,还有两个选项:

  • 使用取样器
  • 使用
Beanshell代码示例(假设在无限循环中的单独线程组中运行,触发事件之间有合理的延迟)

if (currenttime - teststart > Long.parseLong(props.get("test_run_time").toString())) {
    try {
        DatagramSocket socket = new DatagramSocket();
        byte[] buf = "StopTestNow".getBytes("ASCII");
        InetAddress address = InetAddress.getByName("localhost");
        DatagramPacket packet = new DatagramPacket(buf, buf.length, address, 4445);
        socket.send(packet);
        socket.close();
    } catch (Throwable ex) {
    }

}