千家信息网

性能测试-JMeter断言之响应断言精说

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,断言用于验证取样器请求或对应的响应数据是否返回了期望的结果。可以是看成验证测试是否预期的方法。对于接口测试来说,就是测试Request/Response,断言即可以针对Request进行,也可以针对R
千家信息网最后更新 2025年01月22日性能测试-JMeter断言之响应断言精说

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

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

JMeter常见的断言元件如下:
1.响应断言

2.JSON Assertion

本章节,我们主要先来学习JMeter响应断言.

配置项

Apply to:

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

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

2.在HTTP请求的高级设置的"Embedded Resources from HTMLFiles"项,勾选了"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/访问新浪,会有两次重定向:

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

Location: 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)

模式 取样器 多个 测试 字段 状态 逻辑 文本 选择 组合 成功 数据 正则 范围 表达式 之间 字符 字符串 第一次 结果 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 宿城区环保网络技术诚信合作 手机app软件开发教程视频 服务器主板安装电源 为什么易语言数据库打不开 软件开发公司 广州医院 网络安全颁布实施先后顺序 数据库基础之函数 一网络安全为主的手抄报 计算机网络技术课程标准免费下载 网络意识形态+网络安全 双十一服务器崩溃的原因 奇安信产常用网络安全产品 nvidia神经网络技术 重庆网络技术员 养老院 专业软件开发人员外包服务 网络安全环境现状英文 笔记本的网络安全模式怎么进 网络安全事件预警分级颜色 二次灭绝解锁服务器是 APP控制软件开发成本 2019网络安全大事盘点 bmc 连接kvm服务器 日照公安局网络安全保卫支队 笔记本的网络安全模式怎么进 疫情期间服务器会崩溃吗 数据库应用与管理 南昌大鹏软件开发有限公司 最成功的一件是软件开发 打印服务器驱动怎么装 软件开发的面试怎么很难通过
0