Beanshell 后置 处理 写入失败日志

import java.io.*;
import org.apache.jmeter.services.FileServer;
import org.apache.jmeter.threads.JMeterContextService;
import org.apache.jmeter.threads.JMeterVariables;
import org.apache.jmeter.samplers.SampleResult;
import org.json.JSONObject;

// 获取响应数据
String response = new String(prev.getResponseData(), "UTF-8");
String state = vars.get("state");
String zip_code = vars.get("zip_code");


try {
// 解析 JSON 响应
JSONObject jsonResponse = new JSONObject(response);
boolean pass = jsonResponse.getJSONObject("data").getBoolean("pass");

// 如果 pass 为 false,则记录到文件
if (!pass) {
// 获取 JMeter 运行目录
String filePath = FileServer.getFileServer().getBaseDir() + "/zipcode_ava_error.txt";

// 打开文件,追加写入
FileWriter fileWriter = new FileWriter(filePath, true);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);

// 写入响应数据(每行一条失败请求)
bufferedWriter.write("state:"+state+","+"zip_code:"+zip_code+","+response);

bufferedWriter.newLine();

// 关闭文件流
bufferedWriter.close();
fileWriter.close();
}
} catch (Exception e) {
log.error("Beanshell 后置处理器错误:" + e.getMessage());
}
posted @ 2025-02-17 15:43  不带R的墨菲特  阅读(33)  评论(0)    收藏  举报