【问题标题】:Execution behavior of Jmeter sending HTTP request to serverJmeter向服务器发送HTTP请求的执行行为
【发布时间】:2018-01-15 13:40:21
【问题描述】:

我有一个登录事务,其中有 10 个请求。我为登录事务添加了一个统一随机计时器,时间为 2 到 3 秒。即所有这 10 个请求将在发送请求之前等待 3 秒,如下所示。

  1. 等待 3 秒发送 Request1
  2. 等待 3 秒发送 Request2
  3. 等待 3 秒发送 Request3 等等。

所以我的问题是 Jmeter 在发送下一个请求之前是否等待响应。即 Request2 将等待响应,或者 Request3 将在 3 秒后发送,而与先前的请求响应无关。在这种情况下 Request2 的响应。

请帮忙。

提前致谢,

【问题讨论】:

  • 定时器在发现它们的范围内的每个采样器之前被处理;如果同一范围内有多个定时器,则所有定时器都将在每个采样器之前处理。并且计时器不会等待响应,因为它在采样器执行之前被处理。计时器仅用于触发请求采样器。
  • 根据 JMeter 文档:要将计时器应用于单个采样器,请将计时器添加为采样器的子元素。计时器将在采样器执行之前应用。要在采样器之后应用计时器,请将其添加到下一个采样器,或者将其添加为测试操作采样器的子级。

标签: jmeter


【解决方案1】:

无论如何,JMeter 都会在发送下一个请求之前等待上一个请求的响应。在正常情况下,它看起来像:

  • 请求 1
  • 请求 2
  • 请求 3
  • ...

有关计时器工作原理的更多信息,请参阅A Comprehensive Guide to Using JMeter Timers 文章。

通过添加一个计时器,您可以在每个请求之前创建一个“睡眠”,它看起来像:

  • 睡眠 2 - 3 秒
  • 请求 1
  • 睡眠 2 - 3 秒
  • 请求 2
  • 睡眠 2 - 3 秒
  • 请求 3
  • ...

但是根据documentation:

每个线程都将完整地执行测试计划,并且完全独立于其他测试线程。多个线程用于模拟与服务器应用程序的并发连接。

因此,如果您有 > 1 个线程,您可能会遇到不同线程同时执行请求的情况(这是负载测试的重点)。

【讨论】:

  • 非常感谢德米特里。
  • JMeter 总是等待上一个请求的响应
  • 非常感谢德米特里
猜你喜欢
  • 2015-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-30
  • 2017-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多