我在JMeter做老师工具测试。我在.csv文件中有30个条目。我想通过任何逻辑控制器迭代前10个条目用于第一个线程,其他10个条目用相同的控制器迭代第二个线程,这个过程应该重复3个线程。 在逻辑控制器里面我有http采样器。
线程组(3) - csv配置文件 - foreach控制器(1-10) - http sampler -
repeat foreach loop controller(11-20)
答案 0 :(得分:7)
据我了解您的问题,您需要以下内容:
为了实现这一点,您需要以下测试计划结构:
关于详细配置
Beanshell Sampler
将以下代码放入Beanshell Sampler Script区域:
BufferedReader br = new BufferedReader(new FileReader("/path/to/your/file.csv"));
String line;
int counter = 1;
while ((line = br.readLine()) != null) {
vars.put("VAR_" + counter, line);
counter++;
}
br.close();
上面的代码将读取file.csv
中的所有行并将其存储到JMeter变量中,如:
VAR_1=first line of your CSV file
VAR_2=second line of your CSV file
VAR_3=....
如果控制器1
如果您希望此控制器下的任何内容适用于第一个用户,请仅设置以下条件:
${__threadNum}==1
ForEach Controller 1
如果您希望第一个帖子从CSV文件中读取前10行,请按如下方式配置ForEach控制器1:
VAR
0
10
CURRENT_VAR
HTTP请求1
在需要时将当前行引用为${CURRENT_VAR}
。
希望它足够清楚。
参考文献和操作方法:
答案 1 :(得分:0)
将Loop控制器添加到线程(Forever = True),然后将“ CSV数据集Config”作为子级添加到线程。当所有“ CSV数据集”行都运行完后,Jmeter将停止。
例如:
线程
循环控制器
CSV数据集配置 HTTP请求
Jmeter版本= 5。