BeanShell PostProcessor 后置处理器

一 主要作用:

     BeanShell PostProcessor 主要用来提取响应数据,对数据做处理分析的。

二 概念:

    作用类似于后置处理器,其中的ctx、vars、props、prev、log都和BeanShell Sampler一样一样

   ![image.png](https://fynotefile.oss-cn-zhangjiakou.aliyuncs.com/fynote/fyfile/16194/1663307082040/f1a46708c4ae40229e892abaf6985a72.png)

 重点解释前面没有的:

**data: 允许beanshell脚本通过data访问当前取样器的数据,映射SamplerResult中的getResponseData,相当于prev.getResponseData**

通过阅读源码可以知道,这个data是使用StringCoding.encoding("UTF-8")生成的,并转化成了字节码,所以使用它需要解码才能使用;

例如可以如下去使用:

```
String s = new String(data);
log.info(s);
```

三 基础案例:

需求:

```
1. 使用log打印当前取样器的响应体数据data
String s = new String(data);
log.info(s);
2. 使用Java代码提取响应体的数据,并保存到JMeter变量
//提取code值200,并保存在jmeter变量code中
//使用正则
import java.util.regex.Matcher;
import java.util.regex.Pattern;
String pattern = "\"code\"\":\"(.+?)\"";
Pattern p = Pattern.complile(pattern);//创建正则对象
Matcher m = p.matcher(s); // 使用执勤的正则对象p匹配数据s
if (m.find(){
  String code= m.group(1);
  log.info(code);
  vars.put("code",code);
}
 
```
posted @ 2024-03-05 14:38  yongheng999  阅读(267)  评论(0)    收藏  举报