Jmeter 将响应信息保存至本地
在测试过程中经常要经常需要将返回结果中的响应数据要保存至本地的情况,下面以保存用户登录后的返回信息保存为例进行介绍
1.假设上一个接口返回的token已经保存到“token”变量中了
2.在登录请求下添加一个后置处理器 BeanShell PostProcessor
代码如下:
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; try { //创建FileWriter 字符节点输出流, 如果文件不能存在,输出流会自动创建该文件 //第二个参数默认是false,表示每次输出都是覆盖方式,true代表追加,false代表覆盖 FileWriter fstream=new FileWriter("F:\\token.csv",true); BufferedWriter out=new BufferedWriter(fstream); if (!vars.get("token").equals("null")) { log.info(vars.get("token")); out.write(vars.get("token")+"\n"); } out.close(); fstream.close(); } catch (IOException e) { e.printStackTrace(); }
3.运行脚本,查看token.csv 文件中数据是否和想要的一致
4.如果并发30个用户登录,并保存每个用户登录的token,最后写入的文件内容是
5.如果想把登录返回的token和userId 信息都保存在同一个文件的不同列中,代码如下:
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; try { //创建FileWriter 字符节点输出流, 如果文件不能存在,输出流会自动创建该文件 //第二个参数默认是false,表示每次输出都是覆盖方式,true代表追加,false代表覆盖 FileWriter fstream=new FileWriter("F:\\token.csv",true); BufferedWriter out=new BufferedWriter(fstream); if (!vars.get("token").equals("null")) { log.info(vars.get("token")); //"," 体现在csv文档中就是向右移一个单元格 // +"\n" :是换行的效果 out.write(vars.get("token")+","+vars.get("userId")+"\n"); } out.close(); fstream.close(); } catch (IOException e) { e.printStackTrace(); }