JMeter吞吐量整形计时器多个采样器问题

nc1teljy  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(173)

我有一个JMeter测试计划,看起来像这样:

  • 并发线程组
  • 吞吐量整形计时器
  • 取样器1
  • 取样器2

我的期望是所有线程都应该按顺序通过采样器1和采样器2。然而,当我开始测试时,日志显示线程只执行采样器1一段时间,然后在很长时间后才执行采样器2。这几乎就像是线程在第一个采样器之后“休眠”,然后在运行采样器2时被唤醒。
日志输出示例:

Sampler 1 - thread 1
Sampler 1 - thread 2
Sampler 1 - thread 3
Sampler 1 - thread 4
Sampler 1 - thread 5
Sampler 1 - thread 6
Sampler 1 - thread 7
... some time later
Sampler 2 - thread 1
Sampler 1 - thread 8
Sampler 2 - thread 3

为什么第二个采样器没有在第一个采样器运行后立即出现?这几乎就像吞吐量计时插件没有同时处理这对采样器,它只是在开始时按计划运行采样器1。我希望输出在采样器之间看起来更加“平衡”,类似于:

Sampler 1 - thread 1
Sampler 1 - thread 2
Sampler 2 - thread 1
Sampler 1 - thread 3
Sampler 2 - thread 2
Sampler 2 - thread 3
mdfafbf1

mdfafbf11#

看一看JMeter Timers文档:
请注意,计时器在其所在范围内的每个采样器之前进行处理
如果您使用吞吐量整形计时器将JMeter的吞吐量限制为某个值,则绝对可以预期吞吐量整形计时器将在采样器2之前引入延迟。
它还在采样器1之前引入了延迟(从线程组的第2次迭代开始)
我也不明白你的“平衡”期望,JMeter线程是绝对独立的,他们正在执行采样器,因为他们可以快,所以除非响应时间是静态的,不改变你不会有任何可预测的执行顺序。
当然,每个线程都将颠倒执行采样器(或根据逻辑控制器),但在并发性方面,“全局”执行顺序是无法“预测”的,因为响应时间可能(也将)会发生变化。
更多信息:A Comprehensive Guide to Using JMeter Timers

相关问题