jmeter使用beanshell前置处理器写入数据到文件

beanshell PreProcessor存储数据

import java.text.*;

	Date date = new Date();
	SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
	
	File file = new File("C:/Users/Desktop/27/result/"+ft.format(date)+".csv");
	FileWriter fileWriter = new FileWriter(file,true);
	BufferedWriter bufferWriter = new BufferedWriter(fileWriter);
	String jj = sampler.getName(); // 获取结果树中打印的名称
	log.info("===================="+jj);
	bufferWriter.write(jj+',');
	bufferWriter.close();
	fileWriter.close();

beanshell PostProcessor存储数据

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSON;
import java.text.*;

	Date date = new Date();
	SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
	
	File file = new File("C:/Users/Desktop/27/result/"+ft.format(date)+".csv"); // 以日期形式命名存储文件

	JSONObject jsonObj=new JSONObject();

	FileWriter fileWriter = new FileWriter(file,true);
	BufferedWriter bufferWriter = new BufferedWriter(fileWriter);
	try{
		String jsonString = prev.getResponseDataAsString();
		log.info("-------------------------"+jsonString);
		jsonObj = JSON.parseObject(JSON.parseObject(jsonString).getString("one"));
		bufferWriter.write(jsonObj.getString("two")+','+jsonObj.getString("three"));
		bufferWriter.write(System.getProperty("line.separator")); //换行
	}catch(Exception e){
		// 读取jdbc请求中Variable names的值,不是Result variable names的值,
		网上大多写的都是Result variable names的
		String text=vars.get("text_1");
		bufferWriter.write(text);
		bufferWriter.write(System.getProperty("line.separator"));
	}

	bufferWriter.close();
	fileWriter.close();

说明:
1.sampler.getName(),获取的是http request中Name的值,如下图红框圈住的部分jmeter使用beanshell前置处理器写入数据到文件_第1张图片
2.vars.get(“text_1”),获取的是variable names除列名外的第一个值,如果想要列名就写作“text_0”,想要该列除列名外第二行的值写作“text_2”,如下图红框部分
在这里插入图片描述
3.System.getProperty(“line.separator”),是在写入该行的末尾进行了换行,可以自己试下这个。。

你可能感兴趣的:(jmeter)