Jmeter之BeanShell PostProcessor使用

BeanShell介绍

BeanShell是一个嵌套在jmeter中的一个免费的、小型的处理器,采用Java编写的。
BeanShell执行标准的Java语法,并使用常见的脚本编写便利进行扩展,可支持自定义导出Jar1包引用等。

使用前的背景

接口间的关联参数数据需要传递参数值。故可通过Beanshell PostProcessor来处理。
下面我们一起来学习如何使用Beanshell PostProcessor获取接口返回的值。

BeanShell PostProcessor的使用

案例:一个登录接口响应数据中的token值,在后续的接口(比如:创建用户)中需要用到。

  1. 使用jmeter复制登录后的响应数据:
{
	"status":200,
    "message":"",
    "username":"xiaoming",
    "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InhpYW9oZWkiLCJpZCI6NjU3OCwiaWF0IjoxNTg3ODkxNTI4LCJleHAiOjE2NzQyOTE1Mjh9.ICi1Rb9X_2s8GGRsAXmVePJ6byjGEKHB_q3qgN35qtg"
}
  1. 这里是通过org.json解析的。所以需要下载org.json的jar包。【需自行下载】

链接:https://pan.baidu.com/s/1MXjpRrzUITfXHBiIcm0a0w
提取码:sy86

  1. jmeter测试计划中导入下载到的jar包
    在这里插入图片描述

  2. 在登录请求后,添加后置处理器 -> BeanShell PostProcessor。
    在这里插入图片描述

  3. 在Beanshell PostProcessor中的Script中输入以下代码

//先引入Jar包   
import org.json.*;

//获取请求返回值。赋予字符串String 变量
String response = prev.getResponseDataAsString();

//将string的值转换成成 Jsonobject 对象 
JSONObject data_obj= new JSONObject(response); 

//获取Json中 token的值
String token= data_obj.get("token").toString();

//将获取到的token值赋予变量
vars.put("token",token);

//打印token的值
log.info("====token====="+token);

打印的日志在控制台中显示
在这里插入图片描述
6. 后续的接口调用(${变量名称})将token对应的值加进去

总结

这个只是简单的Beanshell 提取json数据。后续有需要,会更新复杂json的解析知识。尽情期待!


  1. Jar包是开发者写好的工具类通过Java或开发工具(eclipse、idea等)打包而成,供其它人进行调用。 ↩︎

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值