把请求响应信息写入jmx所在目录下的txt

import java.text.SimpleDateFormat;
//import java.util.Date;
import org.apache.jmeter.services.FileServer;
import org.apache.jmeter.config.Arguments;
 
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");         
 
log.info("*****把请求响应信息写入txt*****");
/*写入绝对路径*/
//String logpath="C:/Users/mining/Desktop/testlog/testlog${__time(HHmmss,)}.txt";
/*写入相对路径*/
String jmxpath=FileServer.getFileServer().getBaseDir();//获取jmx所在目录路径
String logpath=jmxpath+"/testlog_${__threadGroupName}.txt";
 
FileWriter fstream =new FileWriter(logpath,true);
BufferedWriter out =new BufferedWriter(fstream);
out.write("\n\n");
String sampleLabel=prev.getSampleLabel(); //接口名称
out.write("----------接口名称:"+sampleLabel+"----------\n");
 
Long  samplerStartTime=prev.getStartTime();//获取请求开始时间;
out.write("请求开始时间:"+df.format(samplerStartTime)+"\n");
 
Long samplerEndTime=prev.getEndTime();//获取请求结束时间;
out.write("请求结束时间:"+df.format(samplerEndTime)+"\n");
 
String Latency=Long.toString(prev.getLatency());//获取请求耗时;
out.write("请求耗时:"+Latency+"ms\n");
 
//String requestHeaders = prev.getRequestHeaders();//请求头
//out.write("请求头:\n"+requestHeaders+"\n");
 
String responseURL = prev.getUrlAsString();//请求URL
out.write("请求URL:"+responseURL+"\n");
 
Arguments arguments = ctx.getCurrentSampler().getArguments();//获取请求数据
String samplerData = arguments.toString().replace("(","").replace(")","").replace("=","");
out.write("请求数据:\n"+samplerData+"\n");
 
String responseData = prev.getResponseDataAsString();//响应内容
out.write("响应内容:\n"+responseData+"\n");
 
//out.write("比对图片:"+vars.get("colorpath")+"\n");
 
//String responseCode = prev.getResponseCode();//获取响应码 HTTP: 200 、502、404等
//out.write("响应码:\n"+responseCode+"\n");
 
//String ResponseHeaders = prev.getResponseHeaders();//响应头
out.flush();
out.close();
fstream.close();
posted @ 2021-02-05 17:46  beautifulmining  阅读(55)  评论(0)    收藏  举报