网站首页 > 博客文章 正文
一、断言的定义
断言用于验证取样器请求或对应的响应数据是否返回了期望的结果。可以是看成验证测试是否预期的方法。
对于接口测试来说,就是测试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变量
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)
- 上一篇: nginx作用及其配置
- 下一篇: Java中for、foreach、stream性能比较
猜你喜欢
- 2024-12-25 nginx作用及其配置
- 2024-12-25 动态主机配置协议——DHCP详解
- 2024-12-25 快速掌握和使用Flyway
- 2024-12-25 想了解Python源代码加密吗?现总结如下5大加密混淆手段!
- 2024-12-25 如何在MVC中将ActiveReports后台参数传递给前台
- 2024-12-25 Linux 学习笔记之简单的SSH远程连接配置
- 2024-12-25 Vue基础二——Vue-cli
- 2024-12-25 Zabbix 随笔:6.0 LTS 源码安装
- 2024-12-25 Spring Boot 项目部署方案!打包 + Shell 脚本部署详解,稳的一批
- 2024-12-25 实战 MySQL 高可用架构
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 355℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 344℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)