jmeter提取返回值到文件

该文章已生成可运行项目,

前言

如何将请求的返回值,保存到本地文件,有具体以下3种方式。

  1. 保存到响应文件
  2. BeanShell 取样器
  3. 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();

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值