JMeter:断言之响应断言

一、断言的定义

断言用于验证取样器请求或对应的响应数据是否返回了期望的结果。可以是看成验证测试是否预期的方法。

对于接口测试来说,就是测试Request/Response,断言即可以针对Request进行,也可以针对Response进行。但大部分是对Response做断言。

JMeter常见的断言元件如下:

1.响应断言

2.JSON Assertion

二、响应断言

▲ 配置项

Apply to:

1.在大多数情况下,只有主取样器具有所有必需的响应数据。但是很多Web应用使用了Ajax,JQuery技术,单个请求可以在内部产生多个子请求,并且每个请求都有其对应的响应数据。

比如请求某一个页面,页面里的js会调用其他请求。

2.在HTTP请求的高级设置的“Embedded Resources from HTML Files”项,勾选了“Retrieve All Embedded Resources”,在发送请求时,会解析相关的嵌入资源,也会导致取样器可能产生多个子取样器。

嵌入资源包括:images、applets、stylesheets、external scripts、frames/iframes、background images、background sound等。

3.有重定向的请求,并且勾选了“Follow Redirects”,则主取样器为最后返回的URL请求,第一次URL和重定向返回的所有URL请求为子取样器。

比如,使用http://www.sina.com.cn/访问新浪,会有一次重定向:

● 第一次请求: GET http://www.sina.com.cn/ 重定向返回:
Location:https://www.sina.com.cn/

● 第二次请求: GET https://www.sina.com.cn/

主取样器为第二次请求;第一次与第二次请求为子取样器。

● Main sample and sub-samples

范围包括主取样器与所有子取样器

● Main sample only

范围仅限于主取样器

●Sub-samples only

范围仅限于所有子取样器

●JMeter Variable Name to use

范围包括使用的JMeter变量

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

Field to Test:

1.Text Response

响应正文。对于HTTP协议来说,是响应的message-body(不包括状态行与首部字段)

2.Response Code

响应代码。对于HTTP协议来说,是响应状态码,比如200、304、404等。

3.Response Message

响应消息。对于HTTP协议来说,是原因短语,比如OK、Not Modified、Not Found等。

4.Response Headers

响应首部字段。

5.Request Headers

请求首部字段。

6.URL Sampled

请求的URL。对于HTTP请求,若勾选了“Follow Redirects”,则包含重定向后的URL。

7.Document(text)

通过Apache Tika从各种类型的文档中提取文本。此选项开启也会严重影响性能,谨慎使用。

8.Request Data

请求数据。对于HTTP协议来说,是请求的message-body(不包括请求行与首部字段)

9.Ignore Status

通过将断言的结果与现有的响应状态相结合来确定取样器的总体成功。

当选择Ignore Status复选框时,将强制响应状态在计算断言之前是成功的。

HTTP协议在返回4xx和5xx的状态码默认是不成功的,勾选此项可用于在执行进一步检查之前设置状态成功。

请注意,这将具有清除任何以前的断言失败的效果,因此请确保只在第一个断言上开启此设置。

Pattern Matching Rules:

1.Contains

如果文本包含正则表达式模式,则为true

2.Matches

如果整个文本与正则表达式模式匹配,则为true

3.Equals

如果整个文本等于模式字符串(区分大小写),则为true

4.Substring

如果文本包含模式字符串(区分大小写),则为true

注意:

Contains和Matches模式支持Perl5类型的正则表达式;Equals和Substring模式使用文本字符串,不支持正则表达式。

5.Not

对断言结果进行否定。

6.Or

将多个测试模式以逻辑“或”组合起来。

Patterns to Test:

要测试的模式列表。每个模式都是单独测试的。如果模式失败,则不检查其他模式,使用多个模式设置一个断言与使用每个模式设置多个断言之间没有区别(假设其他选项相同)。

Custom failure message:

自定义断言失败信息。即设置“Assertion failure message”的值。

▲ 对请求做断言

1.断言请求首部字段

在“要测试的响应字段"选择“Request Headers”

2.断言请求URL地址分两种情况讨论:

1)若在“HTTP Request”中勾选了“Follow Redirects”,则断言对象包含请求URL,与重定向Location首部返回的URL,重定向若有多次,则包含每次返回的URL;
2)若在“HTTP Request”中没有勾选“Follow Redirects”,则断言对象只针对请求URL。

▲ 对响应做断言

1.断言响应首部字段

在“Field to Test”选择“Response Headers”

2.断言响应状态码

在“Field to Test”选择“Response code”

3.断言响应原因短语

在“Field to Test”选择“Response Message”

4.断言响应正文

在“Field to Test”选择“Text Response”

▲ 多模式断言

在“Patterns to Test”项中可以添加多个断言模式进行测试,多个模式可以使用“与”,“或”以及“非”进行逻辑组合:

1.逻辑与(and)

多个模式之间默认以“与(and)”进行逻辑组合

2.逻辑或(or)

当勾选了“Pattern Matching Rules”中的“Or”,则多个模式之间以“或(or)”进行逻辑组合

3.逻辑非(not)

当勾选了“Pattern Matching Rules”中的“Not”,则将每个模式Not后以“and”或“or”组合假设有模式p1,p2,p3,... ,pn(优先级not > and > or)

1)仅勾选“Not”

则相当于:(not p1) and (not p2) and (not p3) and ... and (not pn)

2)勾选“Not”与“Or”

相当于:(not p1) or (not p2) or (not p3) or ... or (not pn)

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

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

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

相关文章

推动统一供应链“度量衡”,上汽大通突破传统拥抱SaaS生态

中国汽车市场规模已连续14年位居世界第一,目前占世界汽车份额31%。近年来,物联网、人工智能、电池等技术的快速发展,也为中国从汽车大国逐步迈向汽车强国注入巨大动力。在新一轮的汽车产业变革中,构建一个更智能、更高效协同的供应…

[Linux入门]---git命令行的基本使用

文章目录 1.git使用gitee仓库创建git使用测试ignore文件 1.git使用 git是一款对文件进行版本控制的软件,gitee、github是基于git软件搭建的网站,是可以对代码进行托管的平台;github是国外的网站,访问慢,不稳定&#xf…

RobotFramework+Eclispe环境安装篇

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程,刷完面试就稳了,你也可以当高薪软件测试工程师(自动化测试) 环境安装是学习任何一个新东西的第一步,这一步没走舒坦,那后面就没有心情走下去了…

Docker赋能物联网:探索软件供应链的优势、挑战和安全性

作者:JFrog大中华区总经理董任远 随着联网设备硬件性能的日益提升及价格愈发低廉,物联网应用的复杂性随之提升。常用的容器化平台Docker能够帮助精简流程,助力开发人员更轻松地创建和维护物联网应用。本文将探讨Docker为物联网开发带来的优势…

【C语言学习笔记---字符串函数】

C语言程序设计笔记---018 C语言字符串函数1、字符串函数1.1、strlen函数1.2、strcpy函数1.3、strcat函数1.4、strcmp函数1.5、strncpy函数1.6、strncat函数1.7、strncmp函数1.8、strstr函数1.9、strtok函数1.10、strerror函数 2、字符分类函数2.1、islower函数2.2、isdigit 和 …

docker镜像相关

docker镜像相关 docker镜像相关理解解释unionFS(联合文件系统)镜像加载原理docker镜像要采用这种分层结构 重点理解docker镜像commit 操作实例案例演示总结 docker镜像相关理解 解释 镜像是一种轻量级,可执行的独立软件包,它包含…

Vue基础知识点(面试可用):v-if和v-show的区别

① 简述v-if和v-show的区别? v-if 在编译过程中会被转化成三元表达式,条件不满足时不渲染此节点。元素销毁和重建控制显示隐藏。 v-show 会被编译成指令,条件不满足时控制样式将此节点隐藏(display:none) css样式控制…

【Datawhale课程笔记-简单学点大模型】模型架构

模型架构 参考地址:https://github.com/datawhalechina/so-large-lm/blob/main/第七章:模型架构.md 大模型之模型概括 语言模型的一开始就可以被看做是一个黑箱,当前大规模语言模型的能力在于给定一个基于自身需求的prompt就可以生成符合需…

Redis学习笔记--002

Redis的JAVA客户端 文章目录 Redis的JAVA客户端一、Redis的Java客户端的种类二、Jedis2.1、使用步骤2.2、Jedis连接池 三、[SpringDataRedis](https://spring.io/projects/spring-data-redis)3.1、介绍3.2、RedisTemplate3.3、SpringDataRedis使用步骤3.4、SpringDataRedis的序…

RabbitMQ工作模式——PubSub生产者及消费者

PubSub模式生产者代码 public class Producer_PubSub {public static void main(String[] args) throws IOException, TimeoutException {//1.创建连接工厂ConnectionFactory factory new ConnectionFactory();//2.设置参数factory.setHost("172.16.98.133"); ip 默…

JavaWeb 学习笔记 8:AJAX

JavaWeb 学习笔记 8:AJAX AJAX(Asynchronous JavaScript And XML,异步 js 和 XML)是一种用 js 代码异步(或同步)的方式请求服务端数据,并在页面显示或加载的技术。 1.快速入门 先看如何用纯 …

STM32-无人机-电机-定时器基础知识与PWM输出原理

电机控制基础——定时器基础知识与PWM输出原理 - 掘金单片机开发中,电机的控制与定时器有着密不可分的关系,无论是直流电机,步进电机还是舵机,都会用到定时器,比如最常用的有刷直流电机,会使用定时器产生PW…

Linux学习记录——삼십 socket编程---udp套接字

文章目录 UDP套接字简单通信1、服务端1、创建文件,写框架2、用命令行参数调起程序3、服务端运行逻辑 2、客户端1、创建套接字2、发送数据 3、测试4、通信5、加功能1、处理数据2、群聊 6、Windows下socket编程的不同 UDP套接字简单通信 1、服务端 1、创建文件&…

【C语言学习笔记---内存函数】

C语言程序设计笔记---019 C语言进阶之内存函数1、memcpy函数1.1、模拟实现memcpy 2、memmove函数2.1、模拟实现memmove函数 3、memset函数4、memcmp函数5、结语 C语言进阶之内存函数 前言: 通过C语言进阶前篇的字符串函数的知识,继续C语言的内存函数学习…

vue+element plus 使用table组件,清空用户的选择项

<el-table ref"tableRef"> .... </el-table> <script lang"ts" setup> import { onMounted, reactive, ref, nextTick } from vue const clearBtn () > {console.log(清空用户的选择项)tableRef.value.clearSelection() } </scr…

基于Java的酒店管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

洛谷P5660:数字游戏 ← CSP-J 2019 复赛第1题

【题目来源】https://www.luogu.com.cn/problem/P5660https://www.acwing.com/problem/content/1163/【题目描述】 小 K 同学向小 P 同学发送了一个长度为 8 的 01 字符串来玩数字游戏&#xff0c;小 P 同学想要知道字符串中究竟有多少个 1。 注意&#xff1a;01 字符串为每一个…

docker alpine:3.16 root权限安装Anaconda3-2020.07-Linux-x86_64和jdk

首先查看系统版本: rootfv-az454-287:/tmp# uname -a Linux fv-az454-287 5.15.0-1046-azure #53~20.04.1-Ubuntu SMP Mon Aug 28 14:17:23 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux rootfv-az454-287:/tmp# grep NA /etc/os-release NAME"Ubuntu" PRETTY_NAME&q…

【VIM安装ctags cscope】

一、安装软件包 sudo passwd root sudo apt install cmake python2-dev python3-dev build-essential cmake flex bison -y sudo apt install universal-ctags cscope vim git -y sudo apt install python-is-python3 -y sudo apt-get install build-essential libncurses-dev…

算法 - 栈和队列

算法 - 栈和队列 算法 - 栈和队列 栈 1. 数组实现2. 链表实现 队列 栈 public interface MyStack<Item> extends Iterable<Item> {MyStack<Item> push(Item item);Item pop() throws Exception;boolean isEmpty();int size();}1. 数组实现 public class A…