在 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
减慢线程速度
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
减慢线程速度