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");