当这些线程并发运行时,如何为每个线程顺序运行请求?

问题描述 投票:0回答:1

我正在使用 JMeter 进行性能测试。我正在尝试对一系列 API 运行负载测试,这些 API 提供特定场景的创建、更新和删除过程。必须首先创建该项目,以便使接下来的 2 个请求正常工作并返回 200。我使用带有事务控制器的普通线程组来在其中添加 HTTP 请求。

为了说明更多:我有请求 1 个创建、2 个更新和 3 个删除。请求 2 和 3 取决于首先运行 1。我希望有 5 个用户同时进行测试。因此,用户 1 将创建项目,然后进行更新和删除,同时其余用户应该创建项目,然后转到接下来的 2 个请求,依此类推。

当我尝试使用多个线程(10 个线程,5 秒加速周期和循环计数 1)运行测试时,许多更新和删除请求失败,因为它们找不到为该项目创建的 ID。我需要对更大规模的线程数和加速周期进行测试,而不仅仅是 10 个线程。

我搜索了很多并发运行多个线程的方法,其中包括顺序运行的请求,但找不到任何结果。有人可以帮我解决这个问题吗?

jmeter performance-testing load-testing
1个回答
0
投票

应该可以正常使用

  1. 每个 JMeter 线程(虚拟用户)颠倒执行 Samplers(或根据 Logic Controllers
  2. 如果您将创建的项目的 ID 提取到 JMeter 变量中,那么它也不应该成为问题,因为 JMeter 变量是线程本地的,其他线程无法“查看”变量值

因此,要么您尝试运行缺少或未正确实现关联的测试,要么您的应用程序中存在错误,并且它会为并发用户创建的项目返回相同的 ID。您可以通过暂时启用请求和响应数据的保存并将调试采样器添加到您的测试计划中来检查问题所在,以便您可以查看每个请求的所有 JMeter 变量值。

© www.soinside.com 2019 - 2024. All rights reserved.