8

我需要针对 5 到 10 台服务器测试同一组 url。URL 在 CSV 文件中定义。服务器名称在用户定义的变量配置中定义。

我正在使用基于服务器数量的 While 控制器来迭代和执行 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 文件一次并停止。它不是在读取外循环。只有内循环并停止。

4

1 回答 1

19

引用CSV 数据集的 JMeter 手册

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

线程组不能嵌套。因此,您必须使用线程组在 CSV 中进行迭代,并使用 foreach 在其他内容中进行迭代。第二个选项是使用 URL+Server 变体生成 CSV,并仅使用单个线程组来读取 CSV。

第一个选项在这里。

迭代 URL 外循环,迭代服务器内循环。你只需要一个线程组和一个 foreach 在里面。看图片: 用户定义的变量(服务器) 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

样本结果: 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

当然还有 3 个结果...

如果你有时间,你也可以玩CSVRead 功能:)

于 2012-11-08T23:40:49.213 回答