二十、JMeter实战-Bean shell断言
一、JMeter Bean shell断言
什么是beanshell?
- Beanshell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的语法;
- Beanshell是Java写成的,是一个小型的Java源代码解释器,具有对象脚本的语言特性;
- Beanshell执行标准的Java语句和表达式;
为什么要用beanshell?
在做接口测试时,对响应数据的校验是非常重要的部分;在使用Jmeter进行接口测试时,比如我们有常用的响应断言,json断言;使用BeanShell断言可以根据实际情况灵活实现所需的断言,当然了,这需要一些代码基础。
Bean Shell常用内置变量
JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:
log:
写入信息到jmeber.log文件,使用方法:log.info(“return success!”);
vars - (JMeterVariables):
操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:
- (1)vars.get(String key):从jmeter中获得变量值
- (2)vars.put(String key,String value):数据存到jmeter变量中
更多方法可参考:
https://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterVariables.html
prev - (SampleResult):
获取前面的sample返回的信息,常用方法:
- (1)getResponseDataAsString():获取响应信息
- (2)getResponseCode() :获取响应code
更多方法可参考:
https://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html
二、实例:
1. 首先需要下载org.json的jar包
然后在测试计划中导入该jar包,并在jmeter的lib目录下放入该jar包。
2. 在测试计划中选择jar包
编写Beanshell脚本,断言code值:
import org.json.*;
//获取上一个请求的返回
String jsonString = prev.getResponseDataAsString();
JSONObject responseJson = new JSONObject(jsonString);
//判断返回值是否和预期一致
if (responseJson.getInt("error_code") != 0) {
//把断言失败置为真,即用例失败,并在结果树中显示FailureMessage
Failure = true;
FailureMessage = "error_code的返回值有误!";
}
分类:
JMeter项目实战系列
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现