首页 > 解决方案 > 在 jmeter 中模拟所需的吞吐量

问题描述

我想达到每秒 7.6 个请求的吞吐量。我正在使用具有反馈功能和吞吐量整形计时器的 bzm-并发线程组,如下所示。请忽略被删除的线程组。它们被禁用并且不由 Jmeter 执行。

在此处输入图像描述

在此处输入图像描述

当我从命令行运行脚本时,它显示如下日志

在此处输入图像描述

在日志文件中,它提到:

在此处输入图像描述

在并发线程组中,我将具有反馈函数的目标并发定义为 ${__tstFeedback(tst-name,1,100,30)}

这里,1 和 100 是启动线程和最大允许线程,30 是线程池中保留的备用线程数。

我的第一个问题是:

Q1。为什么在命令行日志中它说当前线程组中没有可用的线程。从命令行可以看到,只启动了 39 个线程。我已将允许的最大线程数定义为 100。在这 30 个线程的顶部保留在线程池中,以便 Jmeter 可以在 100 个线程不够时使用它们。我还尝试通过传递 ${__tstFeedback(tst-name,1,200,30)} 来增加线程数,但我仍然得到同样的错误。

仍然为什么它在日志中说没有可用的可用线程并因此增加了您的线程数?

另外,从摘要报告中可以看出,Jmeter 不执行场景 3 和场景 4 的事务控制器

在此处输入图像描述

Q2。Jmeter 不执行场景 3 和场景 4 的原因可能是什么?

标签: jmeter

解决方案


  • Q1当只有 1 个线程在运行时,测试开始后 6 毫秒内写入警告,您真的期望 1 个线程每秒可以执行 7.6 个请求的负载吗?我的意思是理论上这是可能的,如果您的应用程序响应时间低于 130 毫秒,但是我认为它不适用于您的情况,请尝试从 30 个线程开始并删除这些加速期和步骤。
  • Q2我们不知道,最可能的原因是您的测试运行时间不够长,因此第一个线程无法执行场景 1 和 2 中的所有采样器,或者有一些逻辑控制器阻止了这些场景的执行,或者有一个流控制动作采样器,它不允许线程走得更远,等等。

答案总是在jmeter.log 文件中,您可能还想通过在log4j2.xml文件中添加下一行来增加吞吐量整形计时器的 JMeter 日志级别:

<Logger name="kg.apc.jmeter.timers.VariableThroughputTimer" level="debug" /> 

推荐阅读