我需要针对5到10台服务器测试同一组网址。 URL在CSV文件中定义。服务器名称在“用户定义的变量”配置中定义。
我正在使用While Controller根据服务器的数量来迭代并执行url请求。我目前的逻辑定义如下:
Thread group
While controller
Counter (defines number of servers)
While controller (inner check "${URL}" != "<EOF>")
CSV Data Set Config (stop EOF is true)
HTTP Sampler (with url data)
根据逻辑,我的脚本将运行并读取CSV文件并停止。它不是在读取外循环。只有内循环并停止。
答案 0 :(得分:15)
引自JMeter Manual of CSV Data Set:
默认情况下,文件只打开一次,每个线程都会使用一个 文件中的不同行。但是行的顺序 传递给线程取决于它们执行的顺序,即 迭代之间可能会有所不同。在每次测试开始时读取行 迭代。文件名和模式在第一次迭代中得到解决。
无法嵌套线程组。因此,您必须使用线程组迭代CSV并使用foreach迭代其他内容。第二个选项是生成带有URL +服务器变体的CSV ,并使用一个线程组来读取CSV。
迭代URL外循环,迭代服务器内循环。你只需要一个线程组和一个foreach。看图片:
示例结果:
当然还有3个结果......
如果您有时间,也可以使用CSVRead function:)