JMeter 线程用户限制 - 并发执行 5000 个线程

Posted

技术标签:

【中文标题】JMeter 线程用户限制 - 并发执行 5000 个线程【英文标题】:JMeter Thread User Limit - execute 5000 threads concurrently 【发布时间】:2021-07-27 05:50:24 【问题描述】:

我尝试测试我的电脑可以处理多少 VU 限制。到目前为止,我尝试使用 GUI 模式运行 5000 个 VU,它工作正常,所以想知道这是否真的是正确的方法。这是我的笔记本电脑规格:

16GB DDR4、512GB SSD、i5 第 7 代

目前我已经测试了 6 个 HTTP 请求,线程组信息如下:

谁能验证我是否以正确的方式测试极限?为什么在运行测试时,右上角运行的用户数仍然是47?但是在测试结束时,它确实显示它在摘要报告监听器中以5000 VU结束(请参阅第一张截图中的Jmeter日志)

【问题讨论】:

【参考方案1】:

    Thread Group 中只有 1 个循环和 120 秒的加速时间,因此 JMeter 每秒启动 41 个用户。一旦启动,用户开始倒置执行Samplers,当最后一个采样器完成时,线程将被关闭。

    因此,您会遇到一些线程已经完成工作并结束而一些尚未启动的情况。如果您想达到 5000 个用户,则需要勾选循环计数旁边的 Infinite,并指定 Thread Lifetime 大于您的启动时间。

    更多信息:JMeter Test Results: Why the Actual Users Number is Lower than Expected

    根据JMeter Best Practices,您应该:

    在command-line non-GUI mode 中运行您的测试 禁用或删除所有Listeners,因为它们没有任何价值,只是消耗资源

    完成非 GUI 测试执行后,您可以使用您选择的侦听器打开 .jtl results file 或从中打开 generate html Reporting Dashboard 并分析结果

【讨论】:

谢谢先生。我试图将循环计数设置为无限。但是当它达到 5000 个用户后,测试还在运行吗?那么之后HTTP请求出现这么多错误是正常的吗? 测试将在线程组中指定的 持续时间(秒) 内运行。 w.r.t.错误的数量 - 这是一个不同的故事,很可能你的应用程序过载了。查看Active Threads Over Time 和Response Codes per Second 看看问题出在哪里,使用JMeter PerfMon Plugin 看看是否缺少资源也是一个好主意

以上是关于JMeter 线程用户限制 - 并发执行 5000 个线程的主要内容,如果未能解决你的问题,请参考以下文章

jmeter并发数和线程数的区别

用50个并发线程模拟1万在线用户的逻辑

Jmeter之压力测试总结

Python中级精华-并发之启动和停止线程

jmeter之线程组的使用

jmeter如何并行执行多个线程组