1.Bean Shell常用内置变量

JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:

log:用来记录日志文件,写入到jmeber.log文件,使用方法:log.info(“This is log info!”);

ctx(JmeterContext)通过它来访问context,使用方法可参考:org.apache.jmeter.threads.JMeterContext。

vars- (JMeterVariables):操作jmeter变量,提供读取/写入访问变量的方法。这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:

a) vars.get(String key):从jmeter中获得变量值

b) vars.put(String key,String value):数据存到jmeter变量中

c) vars.putObject("OBJ1",new Object());

props- (JMeterProperties - class Java.util.Properties):操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。

a)props.get("START.HMS");  注:START.HMS为属性名,在文件jmeter.properties中定义

b) props.put("PROP1","1234");

prev - (SampleResult):获取前面的sample采样的结果,常用方法:

a) getResponseDataAsString():获取响应信息

b)getResponseCode() :获取响应code

sampler - (Sampler):gives access to the current sampler 访问当前采样

2.BeanShell 断言使用实例

BeanShell断言可以使用beanshell脚本来执行断言检查,可以用于更复杂的个性化需求,使用更灵活,功能更强大,但是要能够熟练使用beanshell脚本。

这里除了可以使用beanshell的内置变量外,主要通过Failure和FailureMessage来设置断言结果。

Failure = false;-----表示断言成功,

FailureMessage= "……"; ----自定义的成功信息

Failure= true;-----表示断言失败,

FailureMessage= "……";-----自定义的失败信息。

实例:

String responseData = prev.getResponseDataAsString(); //获取请求的返回结果

String code = prev.getResponseCode(); //获取请求的返回code码

String requestData = prev.getSamplerData(); //获取发出的请求数据

if( !code.equals("200") ){ //如果请求的相应状态码不是200

FailureMessage = "响应状态码不是:200,而是:" + code + ",请求失败!"; //自定义的失败信息

log.info(FailureMessage); //在日志里打印失败的信息

log.info("Request: " + requestData); //在日志里面打印失败的请求体

Failure = true; //表示断言失败

}else if(!responseData.contains("\"errCode\":0")){

FailureMessage= "响应body中errCode不是:0,响应body为:" +responseData;

log.info(FailureMessage);

log.info("Request: " +requestData);

Failure= true;

}

beanshell断言_Jmeter之BeanShell断言使用相关推荐

  1. beanshell断言_JMeter使用BeanShell断言

    BeanShell简介 BeanShell是使用Java语法的一套脚本语言,在JMeter的多种组件中都有BeanShell的身影,如: 定时器:BeanShell Timer 前置处理器:BeanS ...

  2. beanshell断言_jmeter之beanshell断言实例

    .首先储存一个接口的响应结果,比如在http请求的后面添加beanshell后置处理器(BeanShell PostProcessor)来储存http请求的响应结果: 1 import org.jso ...

  3. beanshell断言_jmeter之BeanShell对两个变量断言对比

    在jmeter的中,断言没法对两个变量的进行对比后判断,只能使用Bean Shell断言来进行. 假设需求: 获取某类型用户uid个数与数据库查询结果是否相等 获取uid个数用http接口获取统计数据 ...

  4. jmeter json断言_Jmeter接口测试数据库断言的实现与设计

    接口测试大部分都使用接口的响应值作为接口验证的依据,但在与数据库有交互的接口中这种结果判断不足以判断接口的正确性,本文将以jmeter作为接口测试的工具来实现接口的数据库断言 一. 总体思路概述 1. ...

  5. 传递给beanshell的参数_jmeter基础之断言及参数的关联性

    jmeter参数关联 接口测试中经常会碰到,下一个接口的入参是上个接口的出参,企业中不可能实时进行手工改动,那么就需要用到参数的关联,把接口的响应数据,输出给下一个接口.参数关联我们可以使用正则表达式 ...

  6. beanshell断言_jmeter学习指南之响应断言和beanshell断言

    一.响应断言 1.什么是响应断言? 在jmeter中最常用的断言方法是"响应断言",它是通过检查sampler的请求内容和响应结果中是否匹配指定的字符串来判断结果是否正确. 响应断 ...

  7. beanshell断言_jmeter BeanShell断言 的使用方法(一)

    一.下载jar包 链接:https://pan.baidu.com/s/11UyzVSBzPRGJ0K8vuoKTXg 提取码:3m03 二.步骤 1.安装有jmeter,下载jar包后,把jar包放 ...

  8. python unittest断言_python unittest之断言及示例

    assert.png 前言 python unintest单元测试框架提供了一整套内置的断言方法. 如果断言失败,则抛出一个AssertionError,并标识该测试为失败状态 如果异常,则当做错误来 ...

  9. 参数化,断言,参数化时为什么做断言,怎么做断言,如何确保断言的正确

    参数化是什么 参数化想必做过接口测试的各位小伙伴都不陌生,参数化是对一个接口进行多次重复类似的操作,通过将响应数据与接口API对比即可. 断言是什么 手动测试时,我们通过肉眼去确认程序的实际操作后呈现 ...

最新文章

  1. OpenCV 4.5.4 刚刚发布!新增SoftNMS、DNN模型8位量化等功能
  2. java主线程捕获子线程中的异常
  3. 4-1 面向对象概述
  4. mysql 密码eba_MySQL-体系结构及授权管理
  5. ubuntu下环境变量详解 bashrc, profile, environment
  6. 【漏洞复现】PHPmyadmin 4.8.1后台Getshell新姿势
  7. 用网页做触摸屏展示的设计要点
  8. java sql语句中文乱码_PL/SQL执行语句中文乱码
  9. pip安装第三方库 报错:You should consider upgrading
  10. 传奇地图时间限制脚本_脚本第一课限制进入次数地图设置方法
  11. 给ubuntu添加字体
  12. Windows Azure 虚拟网络中虚拟机的网络隔离选项
  13. 汽车行业数据防泄露解决方案
  14. 计算机房需要排风吗,机房新风排风系统怎么样 机房新风排风系统原理介绍【详解】...
  15. 信息可视化大屏展板(附下载连接)
  16. 计算机系统维护是干嘛,计算机系统维护是什么
  17. JAVA实现坦克大战(JAVA小游戏)
  18. Tensorflow——反卷积
  19. Html顶部导航栏实现
  20. MKD软件仿真进入死循环的解救经验

热门文章

  1. Ubuntu18.04中文输入法候选框显示异常-待解决
  2. R包安装报错的解决方法
  3. 读文章笔记(三):从源码学习Transformer
  4. 双极运算放大器TLC2652应用电路
  5. 指针--用指针变量作函数参数的实例(按值调用与模拟按引用调用)、函数指针及其应用
  6. 「中国龙形」无人机,最狂的无人机
  7. 综合技术--sql injection violation, part alway true condition not allow
  8. ディーゼルは、特別な資質のこれらの種類をはるかに印象
  9. Error creating bean with name ‘transactionManager‘
  10. Qt/C++编写地图综合应用48-地球模式、三维模式、地铁模式