如何在JMeter中的while循环中使用CSV数据集配置?

时间:2012-10-26 19:34:31

标签: csv while-loop jmeter

我需要针对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文件并停止。它不是在读取外循环。只有内循环并停止。

1 个答案:

答案 0 :(得分:15)

引自JMeter Manual of CSV Data Set

  

默认情况下,文件只打开一次,每个线程都会使用一个   文件中的不同行。但是行的顺序   传递给线程取决于它们执行的顺序,即   迭代之间可能会有所不同。在每次测试开始时读取行   迭代。文件名和模式在第一次迭代中得到解决。

无法嵌套线程组。因此,您必须使用线程组迭代CSV并使用foreach迭代其他内容。第二个选项是生成带有URL +服务器变体的CSV ,并使用一个线程组来读取CSV。

第一个选项就在这里。

迭代URL外循环,迭代服务器内循环。你只需要一个线程组和一个foreach。看图片: User defined variables (servers) enter image description here enter image description here enter image description here

示例结果: enter image description here enter image description here enter image description here

当然还有3个结果......

如果您有时间,也可以使用CSVRead function:)