使用相同的用户详细信息重新启动 Jmeter 线程组

问题描述

我使用的是 jmeter 5.4.1 版。我的负载测试脚本使用包含大量用户的 csv 文件。我希望每个线程上都有唯一的用户,但线程组的每次迭代都需要相同的用户,因为我想在同一用户发生某些特定情况时重新启动线程组。我尝试过的所有解决方案都是从 csv 文件中读取下一行,并使用新用户而不是以前的用户登录

我尝试过的解决方案是:

  1. 线程组中选择“每次迭代的同一用户”选项
  2. 线程组中使用“开始下一个线程循环”选项
  3. 我在条件之后使用了流量控制操作选项“启动下一个线程循环”
  4. 我使用了 JSR233 Sampler 并添加了以下行来启动新的线程组 SampleResult.setStartNextThreadLoop(true);

有人可以帮我解决这个问题吗?

解决方法

如果您正在使用 CSV Data Set Config - 这是不可能的,下一个值将在下一次迭代中采用,并且无法将其“重置”到特定位置,只能从停止的地方继续或者从头开始。

考虑读取用户名的替代选项,即:

  • CSVRead() function 仅当您明确调用 ${__CSVRead(your-file.csv,next)}

    时才会进入下一行
  • __groovy() function 您可以完全控制要读取的行,例如:

    • ${__groovy(new File('test.csv').readLines().get(0),)} - 阅读第一行
    • ${__groovy(new File('test.csv').readLines().get(1),)} - 阅读第二行