JMeter:断言之响应断言

2023-09-18 20:59:19

一、断言的定义

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

对于接口测试来说,就是测试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)

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

软件测试面试文档

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

在这里插入图片描述

更多推荐

科技改变生活,吉力宝打造智能时代的智能科技鞋新风向

早在10年前,智能运动鞋概念被提起,自德国阿迪达斯公司率先将电脑芯片植入运动鞋以后,智能鞋的研发便开始成为世界市场的潮流。2016年年底,美国耐克公司推出了一款能够自动系上鞋带的运动鞋。科技改变生活,智能时代给人们的生活带来了诸多便利。不可否认,智能科技鞋在不断完善其功能的同时,与手机等智能设备的相连也逐渐实现了它与人

【LeetCode热题100】--15.三数之和

15.三数之和注意:最后答案中不能包含重复的三元组使用排序+双指针可以使用三重循环枚举三元组,但是需要哈希表进行去重操作,得到不包含重复三元组的最终答案,消耗量大量的时间和空间对于不重复的本质,保持三重循环的大框架不变,只需要保证:第二重循环枚举到的元素不小于当前第一重循环枚举到的元素第三重循环枚举到的元素不小于当前第

ESD监控报警器的功能特点以及应用领域

静电监控报警器是一种利用静电原理进行监测和报警的设备,其主要功能特点包括:1、高灵敏度:静电监控报警器能够检测到极微小的静电电荷,具有较高的灵敏度。2、高可靠性:静电监控报警器采用高品质的材料和先进的制造工艺,具有良好的可靠性和稳定性。3、多种报警方式:静电监控报警器可以通过声音、光信号、短信等多种方式进行报警,方便用

抖音矩阵系统源代码开发部署--SaaS开源技术开发文档

一、概述抖音SEO矩阵系统源代码是一套针对抖音平台的搜索引擎优化工具,它可以帮助用户提高抖音视频在搜索结果中的排名,增加曝光率和流量。本开发文档旨在提供系统的功能框架、技术要求和开发示例,以便开发者进行二次开发和优化。二、功能框架抖音SEO矩阵系统源代码主要包括以下功能框架:1.AI视频批量剪辑(文字转语音,自动配声,

解释器-架构案例2021(三十一)

软件架构设计与评估某公司支持用户使用浏览器在线进行基于机器学习的智能应用开发活动。该平台核心应用场景是用户拖拉拽算法组件灵活定义机器学习流程,采用自助方式智能应用设计、实现与部署,并开发新算法加入平台。(a)平台用户分为算法工程师、软件工程师和管理员等三种角色,不同角色的功能界面有所不同:(b)平台应该具备数据库保护措

计算机毕设 LSTM的预测算法 - 股票预测 天气预测 房价预测

文章目录0简介1基于Keras用LSTM网络做时间序列预测2长短记忆网络3LSTM网络结构和原理3.1LSTM核心思想3.2遗忘门3.3输入门3.4输出门4基于LSTM的天气预测4.1数据集4.2预测示例5基于LSTM的股票价格预测5.1数据集5.2实现代码6lstm预测航空旅客数目数据集预测代码7最后0简介今天学长向

军训场KL

K-阿布学长的超级数学看一眼数据范围,在10的14次方以内,可以计算一下可不可以用暴力做法,c++一般能处理时间复杂度在O(1e8)及以内的算法每一次循环生成的数的数量分别为1、2、3......k。(1,12,123,...,123..k)假设k为1e8的话,根据求和公式可以得出(1+1e8)/2*1e8大约在5e1

二、vue2脚手架-组件化开发

|vue中的图片打包后会转换为base64格式组件的使用1.创建组件:component文件夹中创建HelloWorld.vue文件2.在app.vue中引入组件组件间的通信/传值(常用)一、prop父传子1.App.vue中的引入组件中创建需要传递的数据2.在子组件中接收并确定父组件传递过来的数据类型more规定接收

【区域生长】代码

以下是基于Python的区域生长法完整代码:importnumpyasnpimportcv2#读入原始光学影像并转为灰度图像img=cv2.imread('optical_image.jpg',cv2.IMREAD_GRAYSCALE)#设定种子点(滑坡区域)seed_point=(200,200)#设定生长阈值thr

redis深度历险 2 - Redis的基本数据类型以及使用场景

Redis的基本数据类型包括五种:String(字符串)、Hash(哈希)、List(列表)、Set(集合)及ZSet(有序集合)。String(字符串)类型:简介:String是最基本的数据类型,也是最重要的类型之一,一个key对应一个value,可以是字符串、整型、浮点等,String的最大储存值为512MB。缓存

log4j2或者logback配置模版实现灵活输出服务名

介绍在我们使用log4j2或者logback打印日志时,输出的内容中通常是一定要加上服务名的。以log4j2为例:<!--输出控制台的配置--><Consolename="Console"target="SYSTEM_OUT"><!--输出日志的格式--><PatternLayoutpattern="server-ca

热文推荐