我在JMeter做老师工具测试.我在.csv文件中有30个条目.我想通过任何逻辑控制器迭代前10个条目用于第一个线程,其他10个条目用相同的控制器迭代第二个线程,这个过程应该重复3个线程.在逻辑控制器里面我有http采样器.
线程组(3) - csv配置文件 - foreach控制器(1-10) - http sampler-
repeat foreach loop controller(11-20)
Run Code Online (Sandbox Code Playgroud)
据我了解你的问题,你需要以下内容:
为了实现这一点,您需要以下测试计划结构:
关于详细配置
Beanshell采样器
将以下代码放入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();
Run Code Online (Sandbox Code Playgroud)
上面的代码将读取所有行file.csv并将其存储到JMeter变量中,如:
VAR_1=first line of your CSV file
VAR_2=second line of your CSV file
VAR_3=....
Run Code Online (Sandbox Code Playgroud)
如果控制器1
如果您希望此控制器下的任何内容适用于第一个用户,请仅设置以下条件:
${__threadNum}==1
Run Code Online (Sandbox Code Playgroud)
ForEach Controller 1
如果您希望第一个线程从CSV文件中读取前10行,请按如下方式配置ForEach控制器1:
VAR010CURRENT_VARHTTP请求1
根据${CURRENT_VAR}需要参考当前行.
希望它足够清楚.
参考资料和操作方法: