JMeter - 针对每个实施

时间:2018-02-19 11:54:09

标签: jmeter

我有一个API,它将多个ID作为参数:

http://pqa-volpqa.unknown.com:8080/items/batch/?Ids=00000017072571,00000017072588,00000017072595,00000019786230,00000019987460,00000019988238,00000019988283,00000019990170,00000020015206,00000020015213

现在,这些ID会在以下CSV文件中提及:

00000017072571
00000017072588
00000017072595
00000019786230
~~
~~
~~
00000020015213

我该如何实现?

2 个答案:

答案 0 :(得分:1)

  1. 如果它们是CSV文件中的单个字符串,您只需使用__StringFromFile()__FileToString()函数将其直接读入请求参数
  2. 如果它们各自是一个单独的行,那么仍然可以使用__groovy() function

    ${__groovy(def line = new File('/path/to/your/file.csv').getText().replaceAll(System.getProperty('line.separator')\,'\,'),)}
    
  3. 请参阅Apache JMeter Functions - An Introduction以了解有关JMeter Functions概念的更多信息。

答案 1 :(得分:0)

您可以添加Loop controller 循环次数 =您要添加的ID数量。然后使用以下配置在循环控制器内添加Counter

  • 开始: 1
  • 增量 1
  • 参考名称: Counter
  • 选中Track counter independently for each userReset counter on each thread group iteration
  • 的复选框

使用以下配置在计数器后添加CSV Data Set Config

  • 文件名: The full name to your file //如果csv文件与您的jmx文件不在同一文件夹中,则应输入CSV文件的完整路径。
  • 变量名称: id

最后,在csv数据集配置之后添加BeanShell Sampler,并在代码区域中添加以下代码:

String id = vars.get("id");
int Counter = Integer.parseInt(vars.get("Counter"));
if (Counter == 1){
    vars.put("IDs", id);
}
else{
    vars.put("IDs", vars.get("IDs") + "," + id);
}

以上所有内容都应该在您的API之前,现在您可以使用以下API:

http://pqa-volpqa.unknown.com:8080/items/batch/?Ids=${IDs}