【问题标题】:JMeter: delay between each thread request a samplerJMeter:每个线程请求采样器之间的延迟
【发布时间】:2023-03-09 14:01:01
【问题描述】:

我正在进行压力测试,但是我的第一个采样器在很短的时间内用大量请求淹没了服务器,所以我想在使用请求的每个线程之间进行延迟。

测试结构:

  • Thread1 - Sampler1 (例如:访问登录表单)
  • 延迟(自定义秒数)
  • Thread2 - Sampler1 (例如:访问登录表单)
  • 延迟(自定义秒数)
  • ThreadN - Sampler1 (例如:访问登录表单)
  • 延迟(自定义秒数)
  • 线程 1 - 采样器 2
  • 延迟(自定义秒数)
  • 线程 2 - 采样器 2
  • 延迟(自定义秒数)
  • <...>
  • 同步定时器
  • 最终采样器释放的所有线程(这部分有效)

我试图将计时器作为采样器的父母或孩子。可能我错过了什么,因为没有计时器为我工作。

我找到了类似的问题解决方案,但没有一个对我有用: JMeter - sharing a delay between requests across multiple ThreadGroups Delays for each thread in Ultimate Thread Group

【问题讨论】:

  • 线程组中 Rampup 参数的值是多少?
  • 你是对的。增加备胎期解决了这个问题。谢谢。 (但我仍然希望计时器工作)
  • 定时器适用于采样器而不适用于线程。计时器将允许延迟 2 个连续的采样器。但是如果你有一个请求和 10 个用户的线程组。计时器无助于延迟线程的创建和执行。 Rampup 在这方面很有用。但是,如果您有一个包含 5 个线程的 2 个请求的线程组,则对于每个线程,定时器会在采样器/请求执行中引入延迟。它们都有不同的功能。如果你还不清楚,我会在回答中解释。
  • 你的回答很有用。我已经发现,定时器只适用于不同的采样器。但为了清楚起见,我将尝试 answes (stepping thread group) 和 (Ultimate thread group) 中给出的一些示例。

标签: jmeter delay


【解决方案1】:

我建议通过http://jmeter-plugins.org/wiki/SteppingThreadGroup/ 使用stepping thread group

在“线程调度参数”部分,您会注意到您可以指定在峰值运行的最大线程数,但您也可以根据需要慢慢实例化线程。

很明显,下面的设置说“当我运行这个测试时,我最终会想要 100 个线程,但是当我第一次开始测试时,等待 15 秒,然后只启动 10 个线程。然后再添加 10 个线程每 120 秒。一旦我们达到最大线程数,继续工作 180 秒,然后每 15 秒慢慢剥离 5 个线程。

这应该可以满足您的需要。

【讨论】:

    【解决方案2】:

    根据您的测试计划描述,您可以使用下面提到的 1 个计时器:

    • 高斯随机定时器
    • 恒定定时器

    希望这会有所帮助..

    【讨论】:

      【解决方案3】:

      根据您提到的要求,恒定计时器将是最佳选择。

      【讨论】:

        【解决方案4】:

        您可以使用“终极线程组”代替常规线程组。最终线程组中有“初始延迟”,可以帮助您实现您的要求。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-27
          • 1970-01-01
          • 2023-01-28
          • 2019-02-13
          • 2013-09-01
          相关资源
          最近更新 更多