【问题标题】:Jmeter :- Running a bundle of samplers sequentially within concurrent threadsJmeter :- 在并发线程中按顺序运行一组采样器
【发布时间】:2019-08-28 13:09:42
【问题描述】:

我有一个带有 2 个采样器的线程组。让我们说采样器 A 和采样器 B。

采样器 B 依赖于采样器 A 的响应。因此这两个采样器总是必须按顺序运行,首先是采样 A,然后是采样 B。

现在我的要求是同时为多个用户运行这个线程组。

当我为一个用户执行此操作时,它运行良好。但是,当我为多个用户运行时,采样器不会在单个线程组内按顺序执行,从而导致采样器 B 大部分时间都失败。

我需要关于如何实现这一目标的建议。

我尝试使用同步计时器、事务控制器来捆绑采样器,但它不起作用

【问题讨论】:

  • Sample A 和 B 应该在线程之间使用唯一的变量集独立执行,所以您应该不会遇到任何问题,如何保存 Sampler A 的响应以及确切的问题是什么?
  • Sample B 依赖于 Sample A 的响应,因此不能独立执行。这些总是必须以顺序方式执行,首先是样本 A,然后是样本 B。
  • 你能解释一下除了 log/listener 中的采样器顺序之外什么不起作用吗?
  • 请看第二张快照,每个用户的顺序应该是 Sample A -> Sample B。在快照中,它是样本 A(用户 1),然后是样本 A(第二个用户),这是不需要的。它应该是样本 A(用户 1)-> 样本 B(用户 1)...然后是样本 A(用户 2)-> 样本 B(用户 2)...以此类推
  • 如果您不想要多线程并且想要顺序更改为 50 Loop Count

标签: performance testing jmeter automated-tests load


【解决方案1】:

找到了解决方案 - 使用关键控制器将采样器捆绑在一起。特此提供示例的链接 - https://jmeter.apache.org/usermanual/component_reference.html#Critical_Section_Controller

【讨论】:

    【解决方案2】:

    您可以通过使用测试计划中的控制器来获得所需的结果。您可以为此使用 If Controller。

    https://jmeter.apache.org/usermanual/component_reference.html#Simple_Controller

    【讨论】:

      【解决方案3】:

      关键部分控制器仍然无法满足此要求。 由于在临界区控制器中定义的采样器 A 和采样器 B 上的名称锁定,它仍将按以下顺序依次运行线程(线程 1、2 和 3 依次执行)。但是要求是并行运行所有线程(1、2和3),但是采样器A和采样器B应该为每个线程顺序执行。

      关键部分控制器行为: 线程 1 -(采样器 A,然后是采样器 B), 线程 2 -(采样器 A,然后是采样器 B), 线程 3 -(采样器 A 然后采样器 B),

      【讨论】:

      • 好的,那我该怎么做才能实现并行运行呢?能否详细说明。
      猜你喜欢
      • 2012-12-28
      • 1970-01-01
      • 2016-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多