【P46】JMeter 响应断言(Response Assertion)

news2024/12/27 13:04:53

文章目录

    • 一、响应断言(Response Assertion) 参数说明
    • 二、准备工作
    • 三、测试计划设计
      • 3.1、包括
      • 3.2、匹配
      • 3.3、相等
      • 3.4、字符串
      • 3.5、字符串
      • 3.6、或者


一、响应断言(Response Assertion) 参数说明

可以对 Jmeter 取样器的响应消息进行检查

使用场景:当响应中有明显的业务标志时,我们可以采用该断言器检测响应报文返回的特征值,进而判断在业务上是否确定

使用频率:非常高,大部分场景均可以使用该断言器

右键 >>> 添加 >>> 断言 >>> 响应断言(Response Assertion)

在这里插入图片描述

断言成功,查看结果为绿标;断言失败,查看结果为红标

Apply to

  • Main sample and sub-samples:作用于父节点取样器及对应子节点取样器;对所有取样器进行断言

  • Main sample only:只作用于父节点取样器;只对主取样器进行断言

  • Sub-samples only:只作用于子节点取样器;只对子取样器进行断言(子取样器:原始取样器,通过后置处理器处理后,获取的请求结果)

  • JMeter Variable Name to use:作用于jmeter变量;针对某一个变量进行断言(输入框内输入变量名称)

测试字段(Field to Test)

  • 响应文本(Text Response):从服务器返回的响应文本,比如body,包含 HTTP 头(请求的响应数据——Response Body)

  • 响应代码(Response Code):比如 200、404(请求的取样器结果中的 Response code)

  • 响应消息(Response Message):比如 OK(请求的取样器结果中的 Response message)

  • 响应头(Response Headers):比如 Set-Cookie 头(请求的响应数据——Response headers)

  • 请求头(Request Headers):(请求的请求——Request Headers)

  • URL样本(URL Sample):请求的地址(请求的请求——Request Body 中的地址)

  • 文档(文本)(Document(text)):通过 Apache Tika 追踪的各种类型文档的文本(比如返回的是HTML格式,其中的文本信息)

  • 忽略状态(lonore Status):指示 JMeter 设置 sampler status 的初始状态为 success。sample status 是否成功,由已 Response status 和断言结果决定,当选中 Ignore Status 时,Response status 被强制设置为 success,不执行进一步的断言判断。仅第一次断言时使用

  • 请求数据(Request Data):(请求的请求——Request Body)

模式匹配规则(Pattern Matching Rules)

  • 包括(Contains):响应内容包括需要匹配的内容即代表响应成功,支持正则表达式

  • 匹配(Matches):响应内容要完全匹配需要匹配的内容即代表响应成功,大小写不敏感,支持正则表达式。

  • Equals:响应内容要完全等于需要匹配的内容才代表成功,大小写敏感,需要匹配的内容是字符串正则表达式

  • Substring:返回结果包含指定结果的字串,但是 subString 不支持正则字符串

  • 否(Not):不进行匹配

测试模式(Patterns Matching Rules): 与模式匹配规则一同使用,可以直接写值也可以使用正则表达式

自定义失败消息(Custom failure message): 自定义失败消息

二、准备工作

慕慕生鲜: http://111.231.103.117/#/login

  • 进入网页后,登录,页面提供了账户和密码

  • 搜索框输入“虾”

  • 右键检查或按F12,打开调试工具,点击搜索

在这里插入图片描述

三、测试计划设计

3.1、包括

(1)、测试计划右键 <<< 添加 <<< 配置原件 <<< 用户定义的变量

在这里插入图片描述

  • 添加一个变量:IP,值为 111.231.103.117

(2)、测试计划右键 <<< 添加 <<< 测试片段 <<< 测试片段

在这里插入图片描述

  • 名称:HTTP 采样请求

(3)、在网页中,调试中点击网络,找到请求,点击负载,复制参数值

在这里插入图片描述

(4)、HTTP 采样请求右键 <<< 添加 <<< 取样器 <<< HTTP请求

在这里插入图片描述

  • 协议:GET

  • 路径:/product/list

  • 点击从剪切板添加,会自动添加;也可手动添加

(5)、HTTP请求右键 <<< 添加 <<< 后置处理器 <<< JSON提取器

在这里插入图片描述

  • 勾选 Main sample only

只对主取样器进行提取

  • Name of created variable:var1

参数名为:var1

  • JSON Path expressions:$…list[*].name

$:开始符固定的;..:0到多个级别,单个为根级别;list:返回的响应数据结构,相当于字典,key为list的值;name:list值中名为name键的值

  • Match No. (0 for Random):-1

匹配所有符合正则表达式的值

(6)、HTTP请求右键 <<< 添加 <<< 后置处理器 <<< 调试后置处理程序

在这里插入图片描述

  • 参数默认即可

(7)、HTTP请求右键 <<< 添加 <<< 配置元件 <<< HTTP请求默认值

在这里插入图片描述

  • 协议:http

  • 服务器名称或IP:${IP}

使用变量获取ip

  • 端口:8083

  • 内容编码:utf-8

(8)、在网页中,调试中点击网络,找到请求,点击标头找到请求标头,复制所有请求标头

在这里插入图片描述

(9)、HTTP请求右键 <<< 添加 <<< 配置元件 <<< HTTP信息头管理器

在这里插入图片描述

  • 点击从剪切板添加,会将复制的值自动添加进去

如图,可以将信息头中的 ip 使用变量 ${IP} 代替

(10)、测试计划右键 <<< 添加 <<< 线程(用户)<<< 线程组

在这里插入图片描述

  • 参数默认即可

(11)、线程组右键 <<< 添加 <<< 逻辑控制器 <<< 模块控制器

在这里插入图片描述

  • 选择 HTTP 采样请求

(12)、线程组右键 <<< 添加 <<< 断言 <<< 响应断言

在这里插入图片描述

  • 勾选 Main sample only

只对主取样器(HTTP请求)进行断言

  • 勾选 响应文本

请求的响应数据——Response Body

在这里插入图片描述

  • 勾选 包括

  • 测试模式中,点击添加,输入正则表达式:.*虾

表示断言响应文本中,是否包含 “虾” 这个字;.*代表任意字符;测试模式中可以直接写值也可以使用正则表达式;比如:龙虾、.*虾、.*虾.*

(13)、线程组右键 <<< 添加 <<< 监听器 <<< 查看结果树

(14)、点击启动,点击查看结果树,查看请求及取样器信息

在这里插入图片描述

如图,HTTP请求成功,HTTP请求的响应数据下的Response Body中存在多个 “虾” 字,所以断言成功,请求也是成功的

包括:只要所选的测试字段中,包含了所添加的测试模式的正则表达式,则断言成功

3.2、匹配

测试计划设计在 3.1 基础上进行修改验证

(1)、修改 响应断言,勾选匹配

在这里插入图片描述

  • 勾选 Main sample only

只对主取样器(HTTP请求)进行断言

  • 勾选 响应文本

请求的响应数据——Response Body

在这里插入图片描述

  • 勾选 匹配

  • 测试模式中,点击添加,输入正则表达式:.*虾

表示断言响应文本中,是否匹配所设置的正则表达式;.*代表任意字符

(2)、点击清除全部,点击启动,点击查看结果树,查看请求及取样器信息

在这里插入图片描述

如图,主取样器 HTTP请求 失败,说明断言是失败的,因为勾选的是 Main sample only,并不断言子取样器,所以子取样器 HTTP请求-0 是成功的

(3)、修改 响应断言,将测试模式中的正则表达式改为:.*虾.*

在这里插入图片描述

.*虾.*

(4)、点击清除全部,点击启动,点击查看结果树,查看请求及取样器信息

在这里插入图片描述

如图,此时请求成功,说明断言也是成功的

匹配:所选的测试字段中,匹配上了所添加的测试模式中的正则表达式(测试字段中的所有值都匹配上),则断言成功

3.3、相等

测试计划设计在 3.2 基础上进行修改验证

(1)、修改 响应断言,勾选相等

在这里插入图片描述

  • 勾选 Main sample only

只对主取样器(HTTP请求)进行断言

  • 勾选 响应文本

请求的响应数据——Response Body

在这里插入图片描述

  • 勾选 相等

  • 测试模式中,点击添加,将HTTP请求下的响应数据下的Response Body下的返回值,全部复制粘贴过来

选择 相等时,不能写正则表达式

(2)、点击清除全部,点击启动,点击查看结果树,查看请求及取样器信息

在这里插入图片描述

如图,此时请求成功,说明断言也是成功的

相等:所选的测试字段中,测试模式中的值必须与所选测试字段返回的值完全一致,则断言成功;选择相等时,测试模式中正则表达式无效

3.4、字符串

测试计划设计在 3.3 基础上进行修改验证

(1)、修改 响应断言,勾选字符串

在这里插入图片描述

  • 勾选 Main sample only

只对主取样器(HTTP请求)进行断言

  • 勾选 响应文本

请求的响应数据——Response Body

在这里插入图片描述

  • 勾选 字符串

  • 测试模式中,点击添加,添加需要断言的字符串:龙虾

只要包含多添加的字符串即断言成功;选择 字符串时,不能写正则表达式

(2)、点击清除全部,点击启动,点击查看结果树,查看请求及取样器信息

在这里插入图片描述

如图,此时请求成功,说明断言也是成功的

字符串:所选的测试字段中,包含测试模式中的字符串值,则断言成功;选择字符串时,测试模式中正则表达式无效,会将所写的正则表达式当成字符串进行判断

3.5、字符串

测试计划设计在 3.4 基础上进行修改验证

(1)、修改 响应断言,勾选否

在这里插入图片描述

  • 勾选 Main sample only

只对主取样器(HTTP请求)进行断言

  • 勾选 响应文本

请求的响应数据——Response Body

在这里插入图片描述

  • 勾选 字符串

  • 测试模式中,点击添加,添加需要断言的字符串:龙虾

只要包含多添加的字符串即断言成功;选择 字符串时,不能写正则表达式

  • 勾选 否

取反值,当字符串断言成功时,则取反,断言失败,请求失败;当字符串断言失败时,则取反,断言成功,请求成功

(2)、点击清除全部,点击启动,点击查看结果树,查看请求及取样器信息

在这里插入图片描述

如图,主取样器 HTTP请求 失败,说明断言是失败的;3.4 中断言是成功的,响应断言 中勾选 否,则取反,断言失败,请求失败

否:取反值,当所选测试字段与所写测试模式对应上时,则取反,断言失败,请求失败;当所选测试字段与所写测试模式未对应上时,则取反,断言成功,请求成功

3.6、或者

测试计划设计在 3.5 基础上进行修改验证

(1)、修改 响应断言

在这里插入图片描述

  • 勾选 Main sample only

只对主取样器(HTTP请求)进行断言

  • 勾选 响应文本

请求的响应数据——Response Body

在这里插入图片描述

  • 勾选 字符串

  • 测试模式中,点击添加,添加需要断言的字符串:龙虾、小龙虾、澳洲龙虾

测试模式中可以添加多个需要判断的字符串,只有都包含匹配上,才断言成功

(2)、点击清除全部,点击启动,点击查看结果树,查看请求及取样器信息

在这里插入图片描述

如图,主取样器 HTTP请求 失败,说明断言是失败的;HTTP请求,响应数据下的Response Body中,并不存在 ”小龙虾“ 字符串,所以断言失败

(3)、修改 响应断言,勾选 或者

在这里插入图片描述

  • 勾选 或者

只要测试模式中的字符串有一个匹配上,则断言成功

(4)、点击清除全部,点击启动,点击查看结果树,查看请求及取样器信息

在这里插入图片描述

如图,此时请求成功,说明断言也是成功的

或者:当所选测试字段与所写测试模式中,有一个所写的测试模式值对应上时,则断言成功

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

0x10 会话服务 DiagnosticSessionControl

0x10 会话服务 相当是一种分类&#xff0c;通过控制会话模式&#xff0c;使用不同的服务。应始终只有一个诊断会话在服务器中处于活动状态。 服务器应在启动时始终启动默认的诊断会话。 如果没有启动其他诊断会话&#xff0c;则只要服务器通电&#xff0c;默认诊断会话就应该运…

Hudi(五)集成Flink(3)

12、离线compaction MOR表的compaction默认是自动打开的&#xff0c;策略是5个commits执行一次压缩。因为压缩操作比较耗费内存&#xff0c;和写流程放在同一个pipeline&#xff0c;在数据量比较大的时候&#xff08;10w/sqps&#xff09;&#xff0c;容易干扰写流程&#xff0…

LLM:LoRA: Low-Rank Adaptation of Large Language Models

随着模型规模的不断扩大&#xff0c;微调模型的所有参数&#xff08;所谓full fine-tuning&#xff09;的可行性变得越来越低。以GPT-3的175B参数为例&#xff0c;每增加一个新领域就需要完整微调一个新模型&#xff0c;代价和成本很高。 为解决微调大规模语言模型到不同领域和…

西南交通大学智能监测 培训课程练习3

2023.05.31培训 task1&#xff1a;MybatisPlus的使用 task2&#xff1a;SpringMVC常用接口开发 task3&#xff1a;JSON、接口测试 task4&#xff1a;SpringMVC拦截器与过滤器 目录 一、MybatisPlus 1.1DO类 1.2Mapper接口 1.3编写测试类测试 1.4Mybatis和MybatisPlus 二、…

Verilog学习笔记(串口RS232,基于野火教程)

目录 一、串口简介 二、设计与实现 串口数据回环顶层模块设计 串口接收模块uart_rx 串口发送模块uart_tx 顶层模块rs32_top 三、上板验证 一、串口简介 其中SPI和I2C为同步通信接口&#xff0c;双方时钟频率相同。而UART属于异步通信接口&#xff0c;没有统一时钟&…

旅游网项目(SpringBoot2.7.1 + SpringMVC + Mybatis-Plus3.5.0)

技术选型 JAVA版本&#xff1a;JDK17 数据库&#xff1a;Mysql5.7Navicat 后端框架&#xff1a;SpringBoot3.0.6 SpringMVC Mybatis-Plus3.5.0 权限控制&#xff1a;SpringSecurity 前端框架&#xff1a;AdminLTE2 模板引擎&#xff1a;Thymeleaf 工具类&#xff1a;发…

WIN10系统解决IDEA动不动就卡顿一下

1、前言 不知为啥&#xff0c;最近idea一直在卡顿&#xff0c;输入几个代码都会卡两秒&#xff0c;鼠标滚动文件卡两秒&#xff0c;点击打开文件卡两秒&#xff0c;就算是点击上方的工具栏&#xff0c;它也要等两秒才会出来菜单&#xff01; 卡顿的时候整个idea直接无响应&a…

Java性能权威指南-总结3

Java性能权威指南-总结3 性能测试方法原则4:尽早频繁测试小结 Java性能调优工具箱操作系统的工具和分析CPU使用率 性能测试方法 原则4:尽早频繁测试 这是最后的原则。性能测试应该作为开发周期不可或缺的一部分。理想情况下&#xff0c;在代码提交到中心源代码仓库前&#xf…

【数据分享】1929-2022年全球站点的逐月最高气温(Shp\Excel\12000个站点)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;其中又以气温指标最为常用&#xff01;说到气温数据&#xff0c;最详细的气温数据是具体到气象监测站点的气温数据&#xff01; 之前我们分享过1929-2022年全球气象站…

Win10搭建Nacos2.2.3集群版

Nacos是Alibaba提供的服务注册发现的管理平台&#xff0c;其优异的性能越来越受到广大开发者的喜爱&#xff0c;在构建分布式微服务项目中通常会首选Nacos作为注册/配置中心&#xff0c;在实际开发中为了提升服务的可用性和稳定性&#xff0c;通常都会搭建集群版&#xff0c;有…

《强风吹拂》呐!你喜欢跑步吗?

《强风吹拂》呐&#xff01;你喜欢跑步吗&#xff1f; 三浦紫苑&#xff0c;1976生于东京。主要作品有《多田便利屋》《强风吹拂》《哪啊哪啊~神去村》《编舟记》等 林佩瑾、李建铨、杨正敏 译 文章目录 《强风吹拂》呐&#xff01;你喜欢跑步吗&#xff1f;[toc]动漫摘录箱根驿…

Go Web下gin框架使用(一)

〇、前言 在前面&#xff0c;已经在这篇文章中详细地讨论了 gin 框架下的模板渲染问题&#xff0c;这篇文章主要对 gin 框架的使用进行讨论。 一、不同的路由 以下可以选择不同的路由进行渲染&#xff1a; r : gin.Default()type usr struct {Name string json:"name&…

八、go语言键盘输入和打印输出

键盘输入和打印输出 一、打印输出 1.1 fmt包 fmt包实现了类似C语言printf和scanf的格式化I/O。格式化verb&#xff08;‘verb’&#xff09;源自C语言但更简单。 详见官网fmt的API&#xff1a;https://golang.google.cn/pkg/fmt/ 1.2 导入包 import "fmt"1.3 常…

MyBatis——MyBatis项目搭建

但凡是框架&#xff0c;使用都是分三步走 1.导入jar文件&#xff0c;用maven导入 2.处理配置文件 3.开发业务代码 1.创建maven项目导入相关依赖 在pom文件中导入MyBatis相关依赖jar文件 安装lombok 在File->Settings Pugins 中安装lombok 要想启动lombok的话还需要在B…

GPT带你飞:Chat GPT吊打面试官,实时获取答案,分享调用OpenAI API key+完整源码脚本哦!

目录 福利&#xff1a;文末纯分享中文版CHAT GPT镜像&#xff0c;不存在魔法&#xff0c;纯分享免费使用 故事发生了 火爆GitHub 所以大家注意 网友看了之后调侃到&#xff0c;为了防止线上面试作弊&#xff0c;以后只好把面试都改成线下了。 如何安装 既然是调用GPT的AP…

nodejs基于vue的汽车订票客运站售票网站

使用Mysql创建数据表保存本系统产生的数据。系统可以提供信息显示和相应服务&#xff0c;其管理员负责审核会员充值&#xff0c;审核客户购票信息以及会员购票信息&#xff0c;管理客运班次与留言板&#xff0c;管理会员等级。客户查看客运班次&#xff0c;购买并支付车票&…

【Selenium】常用的Selenium基础使用模板和简单封装

前言 近来又用上了 Selneium &#xff0c;因为反复用到&#xff0c;所以在这里将一些常用的方法封装起来&#xff0c;方便后续的使用。 在这篇文章中&#xff0c;我们将探讨 Selenium 的基础模板和基础封装&#xff0c;以便更好地理解 Selenium 的使用方法。 在Selenium的使用…

python基础----03-----if语句、while、for循环、range语句、continue和break

一 布尔类型和比较运算符 1.1 布尔类型和比较运算符 定义变量存储布尔类型数据&#xff1a;变量名称 布尔类型字面量。 布尔类型不仅可以自行定义同时也可以通过计算的来。也就是使用比较运算符进行比较运算得到布尔类型的结果。在C/C中&#xff0c;比较运算符称之为关系运算…

如何解决航空企业数字化转型中的痛点?

数字化时代&#xff0c;越来越多的企业开始关注数字技术&#xff0c;希望通过数字化改造提高企业效率和竞争力&#xff0c;为企业创造更多的商机和利润。今天就来同大家探讨航空领域&#xff0c;小程序在企业数字化转型中发挥的作用、 航空业员工端App的敏捷转型挑战 技术上的…