作者:季沐测试笔记

原文地址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. AWS扩容EC2实例根空间

    文章原文 aws 端操作 先在EC2 实例中选中磁盘 然后打开跟设备 修改大小后保存 ec2 端操作 lsblk 查看当前设备的磁盘编号 df -T -H 查看扩容前的空间大小并确定磁盘格式 grow ...

  2. shell中的引号

    单引号: 所见即所得 原封不动输出 双引号: 与单引号类似 特殊符号进行解析 ( $ $() `` ! ) 无引号: 与双引号类似 支持通配符( {} * ) 反引号: 优先执行 优先执行里面的命令, ...

  3. weblogic漏洞分析之CVE-2021-2394

    weblogic漏洞分析之CVE-2021-2394 简介 Oracle官方发布了2021年7月份安全更新通告,通告中披露了WebLogic组件存在高危漏洞,攻击者可以在未授权的情况下通过IIOP.T ...

  4. Vue开发多人聊天室 复盘总结

    前言 在上个月初,接到一个需求,要开发一个 聊天通讯 模块 并且 集成到 项目中的多个 入口,实现业务数据的记录追踪. 接到需求后,还挺开心,这是我第一次 搞 通讯 类的需求,之前一直是 B 端 的业 ...

  5. redis的集群安装

    1.创建安装目录 在master ,node1 ,node2中分别创建 mkdir /usr/local/soft/redis-cluster 2.将redis 复制到redis-cluster 目录 ...

  6. pip更新升级和删除包

    pip检测更新命令:pip list –outdated pip升级包命令:pip install --upgrade packagename pip卸载包命令:pip uninstall packa ...

  7. UVA 1572 Self-Assembly(拓扑排序)

    1 // 把一个图的所有结点排序,使得每一条有向边(u,v)对应的u都排在v的前面. 2 // 在图论中,这个问题称为拓扑排序.(toposort) 3 // 不难发现:如果图中存在有向环,则不存在拓 ...

  8. 【简单数据结构】二叉树的建立和递归遍历--洛谷 P1305

    题目描述 输入一串二叉树,用遍历前序打出. 输入格式 第一行为二叉树的节点数n.(n \leq 26n≤26) 后面n行,每一个字母为节点,后两个字母分别为其左右儿子. 空节点用*表示 输出格式 前序 ...

  9. 利用 Nginx 搭建小型的文件服务器

    利用 Nginx 搭建小型的文件服务器 1.查看 Nginx 配置 android@localhost:/etc/nginx/conf.d$ nginx -hnginx version: nginx/ ...

  10. 重新嫁接rm命令

    ### 重定义rm命令 #### 定义回收站目录trash_path='~/.trash'# 判断 $trash_path 定义的文件是否存在,如果不存在,那么就创建 $trash_path.if [ ...