Jmeter 将响应信息保存至本地

Posted zippo123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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")+"
");
    }
    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文档中就是向右移一个单元格
         // +"
" :是换行的效果
        out.write(vars.get("token")+","+vars.get("userId")+"
"); 
    }
    out.close();
    fstream.close();
} catch (IOException e) {
    e.printStackTrace();
}

技术图片

 

以上是关于Jmeter 将响应信息保存至本地的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter设置保存到jtl文件中的数据

Jmeter-BeanShell PostProcessor提取请求及响应结果并保存到本地文件

无法将特定步骤保存为测试片段

jmeter 正则获取多个返回token至本地文件,并跨线程组调用

如何将响应保存在jmeter中的变量中

Jmeter提取response返回值保存到本地csv文件