Jmeter 的 Beanshell基本用法

简介: Jmeter 的 Beanshell基本用法

BeanShell是使用Java语法的一套脚本语言,在JMeter的多种组件中都有BeanShell的身影,如:

  • 定时器:BeanShell Timer
  • 前置处理器:BeanShell PreProcessor
  • 采样器:BeanShell Sampler
  • 后置处理器:BeanShell PostProcessor
  • 断言:BeanShell Assert
  • 监听器:BeanShell Listener


通过BeanShell可以对请求数据、响应数据或环境变量进行更加灵活的处理和判断。Beanshell有一些默认的内置变量和方法,用户可以通过这些变量与JMeter进行交互,比如:

  • prInt:非GUI模式下打印信息(输出信息到stdout)
  • log:输出信息到日志(文件)
  • log.debu("调试信息")
  • log.info("响应状态码" + ResponseCode)
  • log.warn("警告信息")
  • log.error("出错信息")
  • ResponseCode:响应状态码(String类型)
  • ResponseHeaders:响应头(String类型)
  • prev:获取当前请求结果
  • prew.getResponseDataAsString():获取响应体数据(String类型)
  • prew.getResponseCode():获取状态码(同ResponseCode,String类型)
  • vars: 操作jmeter变量
  • String var1 = vars.get("变量名"):获取变量的值(假设为String类型)
  • vars.put("变量名", 变量值):设置变量值
  • props: 操作JMeter属性
  • props.get(String,String) 可以获取Jmeter中已经生成的属性
  • props.put(String,String) 可以创建和更新Jmeter属性
  • ctx:获取当前线程上下文数据(可获取所有信息)
  • ctx.getVariables("变量名"):获取变量值(同vars.get())
  • ctx.setVariables("变量名", "变量值"):设置变量(同vars.put())
  • ctx.getProperties("属性名"):获取属性值(同props.get())
  • ctx.setProperties("属性名","属性值"):设置属性(同props.put())
  • ctx.getPreviousResult():获取当前请求结果同(prev)
  • ctx.getCurrentSampler():获取当前采样器
  • ctx.getPreviousSampler():获取前一采样器
  • ctx.getThreadNum():获取线程数
  • ctx.getThreadGroup():获取线程组
  • ctx. getThread():获取当前线程
  • ctx.getEngine():获取引擎
  • ctx.isSamplingStarted():判断采样器是否启动
  • ctx.isRecording():判断是否开启录制
  • ctx.getSamplerContext():获取采样器上下文数据


状态码断言


//状态码断言
log.info("状态码:" + ResponseCode);
if(ResponseCode.equals("200")){ 
  Failure=false;
}
else{
  Failure=true;
  FailureMessage="响应状态码非200";  //指定失败原因
}

响应码断言


//获取响应数据
String response = prev.getResponseDataAsString();
log.info("响应体:" + response);
//响应数据包含
if(response.contains("登录成功")){
  Failure=false;
}
else{
  Failure=true;
  FailureMessage="响应数据不包含登录成功";
}


参考链接:https://www.cnblogs.com/superhin/p/12359794.html

相关文章
jmeter:利用beanshell进行多重断言
在接口测试中,我们对返回结果的正确性判断一般是基于响应报文的返回内容进行断言。但有些时候,按照正常的业务逻辑来说,一个请求返回的内容是多种不同的。
jmeter:利用beanshell进行多重断言
|
27天前
|
Java 测试技术 数据处理
JMeter前置处理器-Beanshell前置处理器详解
JMeter的Beanshell前置处理器允许用Java-like语法执行测试前的自定义逻辑,如参数化和数据处理。要添加它,右键点击HTTP请求,选择“添加”->“前置处理器”->“Beanshell前置处理器”。内置变量如`vars`, `ctx`, `log`和`props`提供与JMeter变量、上下文、日志和属性的交互。例如,`vars.get("key")`用于获取变量,`log.info()`用于记录日志。使用这些工具,测试者能增强性能测试的复杂性和准确性。
22 3
|
JSON 搜索推荐 Java
Jmeter常用断言之BeanShell断言详解
BeanShell断言可以使用beanshell脚本来执行断言检查,可以用于更复杂的个性化需求,使用更灵活,功能更强大,但是要能够熟练使用beanshell脚本。在这里主要通过 Failure 和 FailureMessage来设置断言结果。 Failure = false;-----表示断言成功 FailureMessage = “......";---自定义的成功信息 Failure = true;----表示断言失败 FailureMessage="=".....";---自定义的失败信息
296 0
Jmeter常用断言之BeanShell断言详解
EMQ
|
Java 测试技术 Linux
JMeter 扩展开发:BeanShell 数据模拟实现及性能探讨
本文是开源测试工具JMeter扩展性开发教程第三期,讲解如何采用JMeter内置功能BeanShell实现动态生成测试数据,并探讨其与Java扩展JMeter的实现方式对比。
EMQ
138 0
JMeter 扩展开发:BeanShell 数据模拟实现及性能探讨
|
API Apache
Jmeter系列(68)- BeanShell 内置变量 prev
Jmeter系列(68)- BeanShell 内置变量 prev
193 0
|
安全 Java
Jmeter系列(67)- BeanShell 内置变量 props
Jmeter系列(67)- BeanShell 内置变量 props
173 0
Jmeter系列(67)- BeanShell 内置变量 props
|
Java API Apache
Jmeter系列(66)- BeanShell 内置变量 vars
Jmeter系列(66)- BeanShell 内置变量 vars
236 0
Jmeter系列(66)- BeanShell 内置变量 vars
|
API Apache
Jmeter系列(65)- BeanShell 内置变量 ctx
Jmeter系列(65)- BeanShell 内置变量 ctx
150 1
Jmeter系列(65)- BeanShell 内置变量 ctx
|
JavaScript Java Shell
Jmeter系列(63)- Beanshell 入门
Jmeter系列(63)- Beanshell 入门
189 0
|
存储
Jmeter 常用函数(19)- 详解 __BeanShell
Jmeter 常用函数(19)- 详解 __BeanShell
248 0
Jmeter 常用函数(19)- 详解 __BeanShell