JMeter如何按指定次数读取CSV文件且多线程下总次数符合预期
JMeter多线程下限制CSV文件固定迭代次数的配置方法
之前的配置逻辑错误导致请求数超标:线程组循环次数和子循环控制器的次数是每个线程独立计算的,10个线程场景下会产生 10线程 * 2次线程组循环 * 100次子循环 = 2000 次请求,不符合需求。
按照以下步骤配置即可实现10线程下CSV文件完整读取2次、总请求数固定为200:
- 调整线程组基础配置:线程数设为10,线程组循环次数勾选「永远」,不需要在此处设置2次循环。
- 调整CSV数据集配置元件参数:
Recycle on EOF(遇到文件结束符是否循环):设为TrueStop thread on EOF(遇到文件结束符是否停止线程):设为FalseSharing mode(共享模式):选择所有线程(All threads),让所有线程共用同一个CSV读取指针,避免每个线程独立读取全量CSV数据。
- 添加全局循环次数控制:在线程组下添加循环控制器,循环次数设为
200,把业务请求采样器全部放到该循环控制器下。 - 可选精准停止配置:如果需要测试刚好在200次请求后立刻停止,可以在循环控制器下添加计数器元件,初始值0、递增值1、最大值199,再添加If控制器,判断
${__jexl3(${counter}==199,)}为真时执行「测试活动(Test Action)」采样器,选择停止整个测试。
验证逻辑:所有线程共享CSV读取指针,每执行1次请求指针向后走1行,读完100行自动循环到第1行,累计执行200次后就刚好是CSV完整迭代2次,不会出现多请求的问题。
内容的提问来源于stack exchange,提问作者Ramesh Babu
相关产品推荐
相关产品推荐

