jmeter--5.断言

目录

1. 响应断言

1.1 添加断言

1.2 名词解释

断言失败显示示例

2. json断言

2.1 添加断言

2.2 名词解释

断言失败显示示例

2.3 json断言应用

3. beanshell断言

3.1 添加断言

3.2 原理

断言失败显示示例


1. 响应断言

1.1 添加断言

线程组->添加->断言->响应断言

1.2 名词解释

Apply to :

  • Main sample and sub-samples: 作用于父节点取样器及对应子节点取样器
  • Main sample only: 仅作用于父节点取样器(默认选择)
  • Sub-samples only: 仅作用于子节点取样器
  • JMeter Variable Name to use: 作用于jmeter变量(写入jmeter的变量名称,从这里面提取需要的值)

测试字段:

  • 响应文本:返回的响应文本,不包含响应头
  • 响应代码:请求返回的响应码
  • 响应信息:请求返回的响应信息
  • 响应头:请求返回的响应头
  • 请求头:请求信息的请求头
  • URL样本:请求URL数据
  • 文档(文本):能获取到的所有文本
  • 忽略状态:一个请求进行多项响应断言时,忽略某一项断言的响应结果,而继续下一项断言
  • 请求数据:请求体中的信息

模式匹配规则:

  • 包括:包含上面的信息即算匹配通过,支持正则表达式
  • 匹配:完全对应上上面的信息才算匹配通过,支持正则表达式
  • 相等:响应结果与上面指定信息完全一致才算匹配通过,不支持正则表达式
  • 字符串:包含上面的信息即算匹配通过。不支持正则表达式,对大小写敏感
  • 否:与上面勾选的信息反转即算通过,不包含不匹配勾选的信息

测试模式

  • 需要匹配的正则表达式或字符串。这里可以添加多项。
  • 每一项会分开进行验证
  • 如果一条验证失败,后边的不会再进行验证

断言失败显示示例

2. json断言

2.1 添加断言

线程组->添加->断言->json断言

2.2 名词解释

Assert JSON Path exists:断言的JSON元素的路径,即jsonpath

Additionally assert value:是否额外验证根据jsonpath提取的值。勾选-验证根据jsonpath提取值是否符合预期,不勾选-验证jsonpath能否在JSON文档中找到路径

Match as regular expression:勾选-预期值可以使用正则表达式,不勾选-预期值不能使用正则表达式。如果需要使用正则表达式就需要勾上,默认勾选上的

Expected Value:预期值,需要与jsonpath提取到的值进行对比

Expect null:若提取验证的值为null,则需要勾选上,否则验证的是JSONPath能否找到路径。注意预期值不填表示空,与null不等价,需要设置预期为:[],表示空数组

Invert assertion:取反

断言失败显示示例

2.3 json断言应用

  • 返回的数据必须是json格式
  • 必须按照jsonpath的语法进行指定路径搜索,找不到对应路径的数据断言失败
  • jsonpath是根据键值对的键去找值进行数据校验
  • 返回的是字段,需要转为字符串后再进行比较

3. beanshell断言

3.1 添加断言

线程组->添加->断言->beanshell断言

3.2 原理

主要通过Failure标识是否失败和FailureMessage标识失败信息。

//1. 断言返回的状态码
if("201".equals(""+ResponseCode)){
    Failure = false; //Failure=false 断言成功
    FailureMessage = "断言状态码成功!";
}else{
    Failure = true; //Failure=true 断言失败
    FailureMessage = "断言状态码为201,返回的状态码为:"+ResponseCode;
}

//2.断言返回的结果中包含有某一个字符串
var result = prev.getResponseDataAsString(); //获取相应数据
if(result.contains("accesstoken")){
    Failure = false;
    FailureMessage = "断言返回结果中包含[access_token]成功!";
}else{
    Failure = true;
    FailureMessage = "断言返回结果中包含[accesstoken],返回的信息为:"+result;
}

断言失败显示示例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/324100.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Zynq7020 使用 Video Processing Subsystem 实现图像缩放

1、前言 没玩过图像缩放都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。 目前市面上主流的FPGA图像缩放方案如下:1:Xilinx的HLS方案,该方案简单,易于实现,但只能用…

【闯关练习】—— 1400分(构造)

🌏博客主页:PH_modest的博客主页 🚩当前专栏:cf闯关练习 💌其他专栏: 🔴每日一题 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮,缓…

为什么很多人不看好鸿蒙?轻舟已过万重山

其实这个争议存在很久了。但是到2023年9月份开始,华为秋季发布会上宣布了“鸿蒙不再兼容Android”当时就已经炸开了锅。这个消息让很多不看好鸿蒙的人都闭上了嘴。我们作为国人应该支持自己的操作系统。 鸿蒙4.0,轻舟已过万重山! 鸿蒙Harmo…

一致性协议浅析

Paxos 简介 Paxos 发明者是大名鼎鼎的 Lesile Lamport。Lamport 虚拟了一个叫做 Paxos 的希腊城邦,城邦按照议会民主制的政治模式制定法律。在 Lesile Lamport 的论文中,提出了 Basic Paxos、Multi Paxos、Fast Paxos 三种模型。 Basic Paxos 角色介绍…

玩转硬件之Micro:bit的玩法(六)——扫地机器人

众所周知,扫地机器人,又称自动打扫机、智能吸尘、机器人吸尘器等,是智能家电的一种,能凭借人工智能,自动在房间内完成地板清理工作。一般采用刷扫和真空方式,将地面杂物先吸纳进入自身的垃圾收纳盒&#xf…

从“精益思想“看机器人的开发与应用:一场科技与效率的完美融合

在科技飞速发展的今天,机器人已经深入到我们的生活和工作之中,成为了提高效率、提升质量的重要工具。然而,如何让机器人的开发和利用更有效率、更精细,这是摆在我们面前的一道难题。此时,"精益思想"的出现&a…

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图的圆切图,Kotlin(4)

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图的圆切图,Kotlin(4) 这篇 Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin&am…

Docker部署Traefik结合内网穿透远程访问Dashboard界面

文章目录 前言1. Docker 部署 Trfɪk2. 本地访问traefik测试3. Linux 安装cpolar4. 配置Traefik公网访问地址5. 公网远程访问Traefik6. 固定Traefik公网地址 前言 Trfɪk 是一个云原生的新型的 HTTP 反向代理、负载均衡软件,能轻易的部署微服务。它支持多种后端 (D…

实例分割模型Mask2Former解析

Masked2Former是在mask rcnn基础上改进的一个实例分割模型,参考了一些经典模型的思想,如DETR,实验表明效果很好。 论文:《Masked-attention Mask Transformer for Universal Image Segmentation》 https://arxiv.org/abs/2112.0…

什么是TestNG以及如何创建testng.xml文件?

目录 什么是TestNG? 如何创建testng.xml文件 手动创建testng.xml 通过testng.xml运行整个包 通过testng.xml运行类 使用Eclipse创建testng.xml 本文将讨论TestNG以及如何通过执行testng.xml文件在TestNG中运行第一个测试用例。 什么是TestNG? Te…

Qt QGraphicsItem获取鼠标位置对应图像坐标

本次使用了QGraphicsView来加载图像,然后给其设置了一个QGraphicsScene场景,再给场景添加了一个自定义的QGraphicsItem,在其中重写了paint事件,用来重绘图像。 正常情况时,QGraphicsItem上图像的有效区域QRect大小和QG…

内网穿透[让你在家里也能榨干学校的服务器]Yep!

内网穿透 问题:什么是内网穿透,内网穿透的作用是什么? 前提!!!!你得拥有超级管理员的权限,比如root,不然后面的一切免提! 应用场景如下:比如你…

复选框QCheckBox和分组框QGroupBox

1. 复选框:QCheckBox 实例化 //实例化 // QCheckBox* checkBox new QCheckBox("是否同意该条款",this);QCheckBox* checkBox new QCheckBox(this);1.1 代码实现 1.1.1 复选框的基本函数 复选框选中状态的参数 Qt::Unchecked //未选中状态 Qt::Part…

C++I/O流——(3)文件输入/输出(第二节)

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 含泪播种的人一定能含笑收获&#xff…

Qt QSlider滑动条控件

文章目录 1 属性和方法1.1 值1.2 方向1.3 步长1.4 信号和槽 2 实例2.1 布局2.2 代码实现 QSlider是滑动条控件,滑动条可以在一个范围内拖动,并将其位置转换为整数 最常见的应用就是视频播放器中的进度条 1 属性和方法 QSlider继承自QAbstractSlider&…

Linux中文件名修改的多种方法

找一个不算漂亮的普通女孩,一起柴米油盐,一起日出日落,一起田间地头,一起春花冬雪!要一个不算大的小房子,生两个健康可爱的宝宝,这样就很好。。。。。。 简介: 在Linux系统中&#x…

使用Python+pygame实现贪吃蛇小游戏

使用Pythonpygame贪吃蛇小游戏 使用第三方库pygame,关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520 给出两种实现。 第一种 运行效果如下: 游戏源码如下: import pygame import sy…

排序算法之八:计数排序

1.计数排序思想 计数排序,顾名思义就是计算数据的个数 计数排序又称非比较排序 思想:计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用。 操作步骤: 统计相同元素出现次数 根据统计的结果将序列回收到原来的序列中 计数…

freetos day1

作业:使用计数型信号量设计:生产者和消费者模型 总结今天学习的API函数,写出函数参数和返回值的意思,并且说明函数功能 1 2 3

【数据结构】C语言实现共享栈

共享栈的C语言实现 导言一、共享栈1.1 共享栈的初始化1.2 共享栈的判空1.3 共享栈的入栈1.3.1 空指针1.3.2 满栈1.3.3 入栈空间错误1.3.4 正常入栈1.3.5 小结 1.4 共享栈的查找1.5 共享栈的出栈1.6 共享栈的销毁 二、共享栈的实现演示结语 导言 大家好,很高兴又和大…