前言
如何将请求的返回值,保存到本地文件,有具体以下3种方式。
- 保存到响应文件
- BeanShell 取样器
- BeanShell 后置处理程序
一、监听器–保存响应到文件
1、提取全部返回值,(.json)格式
2、保存到响应文件
添加---->监听器---->保存到响应文件----->添加文件路径


3、结果

二、BeanShell 取样器
提取返回中的某个变量值,单个值
正则表达提取器、ForEach控制器、BeanShell 取样器

1、正则表达提取值

2、ForEach控制器

3、BeanShell 取样器

FileWriter fileWriter = new FileWriter("/Users/Downloads/1.csv", true);
BufferedWriter out = new BufferedWriter(fileWriter);
out.write( vars.get("user")+"\n");
out.close();
fileWriter.close();
4、结果

三、BeanShell 后置处理程序
提取个数一样,行数一样
提取多个变量
正则提取器或json提取器、BeanShell 后置处理程序
1、提取多个变量
(1) json提取器

(2) 正则提取器
写多次正则

或者下面这种方式${user_g1}

2、BeanShell 后置处理程序

FileWriter fstream = new FileWriter("/Users/jianju/Downloads/1.csv",true);
BufferedWriter out=new BufferedWriter(fstream);
num=vars.get("user_matchNr");
for(int i=1;i<=(Integer.parseInt(num));i++){
log.info("i="+i);
log.info(vars.get("name_"+i)); //查看是否获取到变量
out.write(vars.get("user_"+i)+",");
out.write(vars.get("name_"+i)+",");
out.write(vars.get("fname_"+i)+"\n");
}
out.close();
fstream.close();
3、结果

四、BeanShell 后置处理程序
提取个数不一样,行数不一样
import java.io.*;
String userPrefix = "user_";
String idPrefix = "id_";
String outputPath = "/Users/jianju/Downloads/1.csv";
BufferedWriter bw = new BufferedWriter(new FileWriter(outputPath, true));
if(new File(outputPath).length() == 0) bw.write("用户名,用户ID\n");
int userCount = Integer.parseInt(vars.get(userPrefix + "matchNr"));
int idCount = Integer.parseInt(vars.get(idPrefix + "matchNr"));
for(int i=1; i<=userCount; i++) {
String user = vars.get(userPrefix + i);
String id = i <= idCount ? vars.get(idPrefix + i) : "";
if(user != null) bw.write(user + "," + id + "\n");
}
bw.close();




6604

被折叠的 条评论
为什么被折叠?



