Jmeter BeanShell, 读取HTTP请求返回的JSON,并将其存到文件中

发布时间 2023-09-13 15:47:16作者: yxchun

1、创建BeanShell Sampler

将fastjson-1.2.30.jar放到 Jmeter安装目录\lib 下

 

import java.io.*;
import com.alibaba.fastjson.JSONObject;
import java.io.IOException;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;


private static void dealJson() throws IOException {
	
// 获取上个http请求返回的json数据
String jsonString = prev.getResponseDataAsString();
// 将json转为JSONObject
JSONObject obj = JSONObject.parseObject(jsonString);
// 拿到响应码为200的请求
if(obj.getString("code").equals("200")){
//拿到data数据
	String data = obj.getString("data");
// 将data再次转为JSONObject
JSONObject parse = (JSONObject) JSONObject.parse(data);
// 获取filepath的数据
String result=parse.getString("filePath");
//数据保存的文件位置
String filepath = "D:/os/video/filepath.txt";

	try{
//FileWriter(,true),写成true代表写文件时追加到文件中;默认为false,是覆盖文件内容
		FileWriter fileWriter = new FileWriter(filepath,true);
//每次写入换行
	    fileWriter.write("\r\n");
//追加
         fileWriter.append(result);
         fileWriter.flush();
         fileWriter.close();
		}catch(IOException e){
      e.printStackTrace();
      }
	}
	}
//调用
dealJson();