响应结果写入日志文件

方法一:使用查看结果树直接写入(不推荐,工具自带效果不理想)

◆ As XML:保存为xml格式
◆ Elapsed Time: 请求的消耗时间,从请求发送到接收完毕全程耗时(经常用)
◆ Response message:默认值:ok
◆ Success:成功标识,true/false
◆ Sent Byte Count:发送数据量的总和
◆ Response Filename:响应文件名
◆ responseFile class,响应数据文件的类。值是java lang string
◆ Encoding:编码格式
◆ Idle Time:空闲时间,闲置时间
◆ Response Headers:响应头
◆ Assertion Result:断言的结果
◆ Field Names(CSV):字段名,只在csv文件中有效
◆ Label:线程组名称
◆ Thread Name:线程数名称
◆ Assertion Failure Message:断言失败的信息
◆ Active Thread Counts:执行线程的总数
◆ Latency:延迟时间,表示请求发送到刚开始接受响应时间
◆ Sample and Error Counts:请求成功和失败的总数
◆ Request header:请求头
◆ Response Data:响应信息
◆ Time Stamp:时间戳
◆ Response Code:服务器响应码,200表示成功
◆ Data Type:数据类型
◆ Received Byte Count:接收数据量的总和
◆ URL:链接信息
◆ Connect Time:请求建立连接的时间
◆ Hostname:保存主机名
◆ Sampler Data:请求信息,会打印请求方法(get/post)和cookie
◆ Sub Results:子结果

方法二:使用后置处理器--beanshell后置处理程序(推荐使用)

image.png

import java.io.FileWriter;
import java.io.IOException;
import net.minidev.json.JSONObject;
import net.minidev.json.parser.JSONParser;
import net.minidev.json.parser.ParseException;

// 获取请求数据
String requestData = prev.getSamplerData();

// 获取响应数据
String returnData = prev.getResponseDataAsString();

// 解析响应数据的code值
String codeValue = "";
try {
    JSONParser parser = new JSONParser();
    JSONObject jsonResponse = (JSONObject) parser.parse(returnData);
    codeValue = jsonResponse.get("code").toString(); //修改处“code”替换为想要断言的字段名
} catch (ParseException e) {
    // JSON解析异常,不是有效的JSON格式,不处理
    return;
}

// 判断code值,只处理code不等于1的请求
if (!codeValue.equals("1")) {      //修改处“1”修改成想要断言的字段值
    log.info("Request:\n" + requestData);
    log.info("Response:\n" + returnData);

    String fileName = "D:\\log_add.txt";
    FileWriter fw = new FileWriter(fileName, true);
    fw.write("\r\n");
    fw.write("Request:\n" + requestData);
    fw.write("Response:\n" + returnData);
    fw.write(returnData);
    fw.write("\r\n");
    fw.close();
}

注意事项:
1、需要根据业务场景修改判断,这里判断响应结果code不等于1才会写入
2、保存文件路径支持修改,注意填写绝对路径

posted on 2024-04-26 17:17  CAI_11  阅读(1)  评论(0编辑  收藏  举报