我想了解在运行时实现的实际 JMeter 吞吐量行为。
场景 - 我正在使用恒定吞吐量计时器和 beanshell 脚本在运行时增加 JMeter 吞吐量,如此处所述 - https://www.blazemeter.com/blog/how-to-change-jmeters-load-during-runtime。
测试计划 - 与上述 CTT 一起,配置了具有固定 #threads 和无限循环迭代的简单线程组。使用 GET 调用的 HTTP 采样器。测试计划中没有添加其他计时器或插件。
随着我在运行时不断增加 JMeter 的目标吞吐量,我注意到实际实现的吞吐量值主要受两个因素的限制 -
- 我的线程组中的线程。
- 目标应用的性能瓶颈。
我对这两个限制都有疑问-
一旦使用当前线程组中的所有线程实现了最高吞吐量(假设目标应用程序还没有错误),有没有办法在运行时动态增加 #threads 以实现更高的 JMeter 吞吐量?
现在,随着我不断增加 JMeter 吞吐量,由于目标应用程序的错误,它无法进一步增加。JMeter 如何识别我的目标应用程序的性能瓶颈并对其做出反应?它是否会增加任何延迟或终止线程或应用任何此类机制以将其吞吐量降低到目标应用程序可以承受的最大值?
继续第 2 点,如果 JMeter 通过任何方法识别并响应性能瓶颈,控制其吞吐量以使其保持在目标应用程序的最大限制内的因素(如错误率、响应延迟等)是什么?这些因素是可配置的还是可扩展的?