jmeter 在一个接口内怎么从excel中获取数据循环生成100个json字符串放到list集合中
时间: 2024-06-12 19:08:24 浏览: 180
1. 添加CSV数据文件配置元件
在jmeter测试计划中添加CSV数据文件配置元件,配置CSV文件路径和分隔符。
2. 添加循环控制器
在CSV数据文件配置元件下添加循环控制器,循环次数设置为100。
3. 添加HTTP请求
在循环控制器下添加HTTP请求,请求的参数值从CSV数据文件中读取。
4. 添加BeanShell前置处理器
在HTTP请求下添加BeanShell前置处理器,用于将每次请求所需的参数值从CSV文件中读取,并转换为JSON格式字符串,放入List集合中。
下面是示例代码:
```java
import java.util.ArrayList;
import java.util.List;
import org.apache.jmeter.services.FileServer;
import org.apache.jmeter.protocol.http.util.HTTPArgument;
// 读取CSV文件中的参数值,并生成JSON格式字符串
String csvFile = FileServer.getFileServer().getBaseDir() + "/data.csv";
String[] csvLines = org.apache.commons.io.FileUtils.readFileToString(new File(csvFile)).trim().split("\n");
List<String> jsonList = new ArrayList<String>();
for (String csvLine : csvLines) {
String[] csvValues = csvLine.split(",");
String json = "{" +
"\"param1\":\"" + csvValues[0] + "\"," +
"\"param2\":\"" + csvValues[1] + "\"," +
"\"param3\":\"" + csvValues[2] + "\"" +
"}";
jsonList.add(json);
}
// 将List集合放入JMeter变量中
vars.putObject("jsonList", jsonList);
```
5. 添加JSR223后置处理器
在HTTP请求下添加JSR223后置处理器,用于获取所有请求的响应结果,并将结果保存到文件中。
下面是示例代码:
```java
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
// 获取所有请求的响应结果
List<String> responseList = new ArrayList<String>();
for (int i = 1; i <= 100; i++) {
String response = prev.getResponseDataAsString();
responseList.add(response);
}
// 将响应结果保存到文件中
String responseFile = "response.txt";
Files.write(Paths.get(responseFile), responseList, StandardCharsets.UTF_8);
```
阅读全文