Jmeter 使用Beanshell PostProcessor处理json返回值
摘要
工作中遇到接口的返回值需要经过解密之后才能看到真正的value,这就给接口自动化带来了不少麻烦。而使用Jmeter中的Beanshell postprocessor(Beanshell后置处理器),可以通过调用内部函数与对象,获取请求返回值,并再次加工。
引入合适的包
这里我使用alibaba的fastjson包,引用之前需要将对应的jar包放在 D:\apache-jmeter-5.3\lib\ext 目录下,如下图所示:
放好文件后,跟普通java文件一样import引入即可。
上代码
import com.alibaba.fastjson.JSONObject;
//1.获取请求返回值,prev是Jmeter内置的对象,可以直接拿到返回值
String response = prev.getResponseDataAsString();
//2.将拿到的str转json
JSONObject obj = JSONObject.parseObject(response);
JSONObject data = (JSONObject) obj.get("data");
String originUserId = data.getString("abc");
//3.此处省略一万行解密处理
//4.使用setResponseData设置想要的返回值
prev.setResponseData(xxx, "utf-8");