作者:季沐测试笔记

原文地址https://www.cnblogs.com/testero/p/15436864.html

博客主页https://www.cnblogs.com/testero

1 BeanShell 断言之实例介绍

1.1 假设当前有个判断该用户是否为新用户的接口,返回的数据格式为以下内容:

{
"success": true,
"code": 0,
"msg": "success",
"data": {
"newUser": true,
"invitationCode": null
},
"total": 0
}
  • 当用户为新用户时,newUser的值为true

  • 当用户已是老用户时,newUser的值为false

1.2 假设有两为用户:15293561001为老用户,15293561002为新用户,现需要对改接口返回的数据进行验证,看是否达到预期效果,在Jmeter断言中选择BeanShell 断言

BeanShell中的脚本内容的验证就是根据用户判断newUser的值是否正确,这里会用到BeanShell断言的一些语法,只需要判断下后定义下断言失败或是成功即可,断言内容为以下内容

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSON; prev.setDataEncoding("UTF-8"); String result = prev.getResponseDataAsString(); String result = prev.getResponseDataAsString(); System.out.println("------------------------------------------------------"); JSONObject response = JSON.parseObject(result); System.out.println("response为"+response); JSONObject data = (JSONObject) response.get("data"); System.out.println("data为"+data); System.out.println("mobile为"+"${mobile}"); System.out.println("newUser为"+data.get("newUser")); if ( "${mobile}" == "15293561001") {
if (data.get("newUser").toString().equals("false")){
Failure = false;
FailureMessage = "断言成功";
}else {
Failure = true;
FailureMessage = "断言失败,newUser为"+data.get("newUser");
}
}else if ("${mobile}" == "15293561002"){
if (data.get("newUser").toString().equals("true")){
Failure = false;
FailureMessage = "断言成功";
}else {
Failure = true;
FailureMessage = "断言失败,newUser为"+data.get("newUser");
}
}

断言中15293561001判断的newUser为false,15293561002判断的newUser为true,该断言应该完全通过,循环请求该接口,察看结果树

两条数据都是断言通过

下面我们将15293561002的newUser断言处改为false,执行效果如下

可以看到显示出了之前定义的断言失败的信息和接口返回的该字段的实际结果。

2 断言语法介绍

示例:

if (data.get("newUser").toString().equals("true")){
Failure = false;
FailureMessage = "断言成功";
}else {
Failure = true;
FailureMessage = "断言失败,newUser为"+data.get("newUser");
}

以上断言信息中Failrue用来标识断言失败,Failure = false;时表示断言成功

FailureMessage标识断言失败的原因

Jmeter之BeanShell 断言的更多相关文章

  1. 记录jmeter使用beanshell断言获取复杂的json字符串参数值

    实战示例 测试场景 电商系统经常会涉及到商品的库存数量的压测,在用户下单前需要先做库存余量的判断,当余量不足时用户无法下单,保证商品的有效售卖 库存余量查询响应结果 响应结果一般是json字符串的形式 ...

  2. JMeter中BeanShell断言使用一

    Jmeter Ant Task如何让beanshell断言失败的详细信息展示在report里面 首先必须给beanshell断言添加FailureMessage if(${TotalClient_SS ...

  3. jmeter之beanshell断言---数据处理

    在做接口测试时,对响应数据的校验是非常重要的部分:在使用Jmeter进行接口测试时,有多种respone校验方式,比如响应断言.BeanShell断言等等,BeanShell断言可以自定义断言,自由灵 ...

  4. jmeter使用BeanShell断言

    1. 首先存储一个接口的响应结果,如在http请求的BeanShell PostProcessor: import java.io.UnsupportedEncodingException; Syst ...

  5. Jmeter之BeanShell断言使用

    1.Bean Shell常用内置变量 JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下: log:用来记录日志文件,写入到j ...

  6. 『动善时』JMeter基础 — 31、JMeter中BeanShell断言详解

    目录 1.BeanShell简介 2.Beanshell的内置变量和方法 3.BeanShell断言界面详解 4.BeanShell断言的使用 (1)测试计划内包含的元件 (2)登陆接口请求界面内容 ...

  7. jmeter之beanshell断言实例

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

  8. jmeter中beanshell断言的使用

    简单使用beanshell的内容,进行测试内容的判断 这里通过断言内容,修改if的条件,达到发送警报邮件的功能 beanshell 代码如下:     SampleResult 等效于 prev lo ...

  9. JMeter之BeanShell断言---获取时间戳

    1.创建线程组,创建一个BeanShell Sampler,在其中编写BeanShell脚本. 2.在Jmeter中,可以利用${__time(,)}时间戳函数来获取十位的时间戳,如: vars.pu ...

随机推荐

  1. Redis详解(三)——

    redis https://www.cnblogs.com/zhangyinhua/p/14504717.html

  2. [考试总结]noip模拟39

    不写那么多没用的了 开题就发现 \(T4\) 原题, \(T1\) 大水题. 然后发现 \(T4\) 忘了.... 不扯了 打地鼠 大水题,我代码都不想放... 算了,还是放一下吧.. #includ ...

  3. openswan协商流程之(二):main_inI1_outR1()

    主模式第二包:main_inI1_outR1() 文章目录 主模式第二包:main_inI1_outR1() 1. 序言 2. `main_inI1_outR1()`处理流程图 3. `main_in ...

  4. throws声明异常中断式处理异常

    1.throws 编译期异常,一直往上抛最后是JVM处理(打印并中断程序) 2.声明多个或者直接声明父类

  5. vue-admin-element 页面跳转

    1.通过router-link 进行跳转 <router-link to="/china-quotation/business-function/quotation-request&q ...

  6. 【第五篇】-Maven 构建配置文件之Spring Cloud直播商城 b2b2c电子商务技术总结

    Maven 构建配置文件 构建配置文件是一系列的配置项的值,可以用来设置或者覆盖 Maven 构建默认值. 使用构建配置文件,你可以为不同的环境,比如说生产环境(Production)和开发(Deve ...

  7. 再谈java线程

    线程状态 描述 当线程被创建并启动之后,它既不是已启动就进入到了执行状态,也不是一直处于执行状态.在线程的声明周期中有六中状态. java api中java.lang.Thread.State这个枚举 ...

  8. 计算字符串的长度.len,RuneCountInString

    内置函数len(),可以返回字符串/数组/切片/map/channel的长度. unicode/utf8包 函数:RuneCountInString(输入一个字符串),返回int类型的字符串长度.由于 ...

  9. Orchard Core Framework Samples

    解决方案包含内容 多租户应用 一个ASP.NET Core MVC应用程序,它引用模块项目,并为两个启用了不同模块的租户提供支持. 此Web应用程序的主页提供了更多信息,并链接到两个租户和模块端点.租 ...

  10. GCN数据集Cora、Citeseer、Pubmed文件分析

    简介 本文将对Cora.Citeseer.Pubmed 数据集进行详细介绍 Cora.Citeseer.Pubmed 数据集 来源 图 节点 边 特征 标签(y) Cora "Collect ...