在 jmeter 中,我们如何限制每个线程只读取 csv 行?

In jmeter, how can we restrict each thread to read on csv line only?

Objective: 我有包含独特数据的 csv 文件,例如 200 行。我想要 运行 耐力测试,它执行持续时间例如 10 分钟,并利用来自 csv 的独特数据。 设置: 考虑到这一点,我使用“共享模式:所有线程”进行了如下的步进线程设置。我期待每个 min/60sec、20 个 new 线程将添加等等,直到 10 分钟(预计最后有 200 个线程)。使用停止线程 EOF- True(想要处理数据一次没有重复)和 EOF 的回收 = False。 然而,API 仅在一分钟内执行,csv 数据由 < 20 的几个线程读取并完成(遇到 EOF),尽管 jmeter 在接下来的 9 分钟内没有执行我的 API。

期望:200 个线程将读取 200 行,即每个线程 1 行,线程的出现将在 60 秒内出现 20 个线程。与图表相同,但不执行 Stop thread EOF=false。简而言之,每个线程执行一次然后停止。

任何问题,我该如何实现?谢谢!!

根据您的设置,每个线程都会在每次 迭代时从 CSV 文件中读取下一行

例如:

  • 线程 1 启动
  • 线程 1 从 CSV 中读取第 1 行
  • 线程1执行第一个采样器,响应时间为1秒
  • 线程1执行第二个采样器,响应时间为2秒
  • 线程 1 开始第二次迭代
  • 线程 1 从 CSV 中读取第 2 行
  • 等等

因此您要么需要切换到具有 Threads iterations limit 设置的线程组实现,例如 Concurrency Thread Group or Arrivals Thread Group or Free-Form Arrivals Thread Group

如果您想继续使用步进线程组 - 您需要使用 Timers

减慢线程速度