微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Jmeter 线程组持续时间

如何解决Jmeter 线程组持续时间

我有这种情况:

  • 线程组(n_threads=X,持续时间 Y 秒)
    • 循环
      • Java 采样器

当测试持续时间结束时,Jmeter 不会停止发出请求的线程,因此测试不会终止。怎么解决

解决方法

如果“Java 采样器”的响应时间高于测试持续时间,就会发生这种情况。我建议在您的 Java 代码中引入合理的超时,以便采样器将失败/退出而不是永远等待响应。如果你不知道那里发生了什么 - 拿一个 thread dump 看看你的线程卡在哪里

作为解决方法,我能想到的“终止”测试的唯一方法是:

  1. 使用 1 个线程添加另一个线程组

  2. 使用以下代码添加 JSR223 Sampler

    sleep(5000) // wait for 5 seconds,amend accordingly to your desired test duration
    log.info('Exceeded test duration')
    System.exit(1)   // the process will exit with non-zero exit code (error),change it to 0 if needed
    

    有关 JMeter 中 Groovy 脚本概念的更多信息,请参阅 Apache Groovy - Why and How You Should Use It

另请注意,此代码将终止整个 JVM,因此将 jmeter.save.saveservice.autoflush=true 行添加到 user.properties 可能是有意义的,因为强行终止整个 JVM 可能会导致一些结果损失。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。