性能测试(15)——断言

简介: 添加JSON断言,根据json path 路径,找到需要断言的字段,然后将函数助手生成的字符串拼接函数复制到预期结果中,将value + 计数器的引用名称,生成对应的用户自定义变量引用名称(断言数据文件的字段名称),完成批量断言。

(一)响应断言

image.png
Apply to:适用范围
Main sample and sub-samples: 作用于父节点取样器及对应子节点取样器;
Main sample only: 仅作用于父节点取样器;
Sub-samples only: 仅作用于子节点取样器;
JMeter Variable: 作用于jmeter变量(输入框内可输入jmeter的变量名称);
测试字段:要检查的项
响应文本: 来自服务器的响应文本,即主体,不包括任何HTTP头
响应代码: 响应的状态码,例如:200
响应信息: 响应的信息,例如:OK
Response Headers: 响应头部
Request Headers: 请求头部
Request Data: 请求数据
URL样本: 响应的URL
Document(text): 响应的整个文档
忽略状态:忽略返回的响应状态码
模式匹配规则
包括:文本包含指定的正则表达式
匹配:整个文本匹配指定的正则表达式
Equals:整个返回结果的文本等于指定的字符串(区分大小写)
Substring:返回结果的文本包含指定字符串(区分大小写) 否:取反
或者:如果存在多个测试模式,勾选代表逻辑或(只要有一个模式匹配,则断言就是OK),不勾选代表逻辑与(所有都必 须匹配,断言才是OK)
测试模式
即填写你指定的结果(可填写多个),按钮【添加】、【删除】是进行指定内容的管理

(二)Json断言

该组件用来对JSON文档进行验证,验证步骤如下:

  1. 首先解析JSON数据,如果数据不是JSON,则验证失败。
  2. 使用Jayway JsonPath 1.2.0中的语法搜索指定的路径。如果找不到路径,就会失败。
  3. 如果在文档中找到JSON路径,并且要求对期望值进行验证,那么它将执行验证操作。

image.png
Assert JSON Path exists:用于断言的JSON元素的路径
Additionally assert value:如果您想要用某个值生成断言,请选择复选框 Match as regular expression:如果需要使用正则表达式,请选择复选框 Expected Value:期望值,用于断言的值或用于匹配的正则表达式的值
Expect null:如果希望为空,请选择复选框
Invert assertion (will fail if above conditions met):反转断言(如果满足以上条件则失败)

(三)批量断言

1、新建用户CSV数据文件
image.png
2、根据CSV数据文件的数据数目,修改相应的循环次数,一条数据对应一次循环,如CSV有三条数据,那么需要循环3次。
image.png
3、新建用户自定义变量,作为断言数据文件,命令建议按照规范统一命令,如value1,按照前缀+ 下划线 + 数值,此处的数值,可以使用计数器生成。
image.png
4、创建计数器
image.png
5、创建字符串拼接函数
image.png
6、添加JSON断言,根据json path 路径,找到需要断言的字段,然后将函数助手生成的字符串拼接函数复制到预期结果中,将value
+ 计数器的引用名称,生成对应的用户自定义变量引用名称(断言数据文件的字段名称),完成批量断言。
image.png

目录
相关文章
|
测试技术
JMeter 随机数生成器详细指南:利用 Random 和 UUID 实现
在压力测试中,经常需要生成随机值来模拟用户行为。JMeter 提供了多种方式来生成随机值,本文来具体介绍一下。
|
消息中间件 Java Kafka
Springboot集成高低版本kafka
Springboot集成高低版本kafka
1233 0
|
Java 测试技术
干货|这些JMeter内置函数,你了解多少?建议收藏
干货|这些JMeter内置函数,你了解多少?建议收藏
256 1
|
11月前
|
开发框架 .NET 开发者
简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:<https://github.com/khellang/Scrutor>
286 5
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
CogAgent-9B:智谱 AI 开源 GLM-PC 的基座模型,专注于预测和执行 GUI 操作,可应用于自动化交互任务
CogAgent-9B 是智谱AI基于 GLM-4V-9B 训练的专用Agent任务模型,支持高分辨率图像处理和双语交互,能够预测并执行GUI操作,广泛应用于自动化任务。
362 12
CogAgent-9B:智谱 AI 开源 GLM-PC 的基座模型,专注于预测和执行 GUI 操作,可应用于自动化交互任务
|
Java 开发者
Java 中的锁是什么意思,有哪些分类?
在Java多线程编程中,锁用于控制多个线程对共享资源的访问,确保数据一致性和正确性。本文探讨锁的概念、作用及分类,包括乐观锁与悲观锁、自旋锁与适应性自旋锁、公平锁与非公平锁、可重入锁和读写锁,同时提供使用锁时的注意事项,帮助开发者提高程序性能和稳定性。
506 3
成功解决:CentOS7中无法连接网络
这篇文章介绍了如何解决CentOS 7虚拟机无法连接网络的问题。作者猜测问题可能是由于虚拟机软件的网关和CentOS 7系统的网关不一致导致的。文章提供了两种解决方案:修改虚拟网络编辑器的网关或修改CentOS系统的网关和IP地址。作者选择了后者,并演示了如何在CentOS终端中以root用户身份修改IP和网关。
成功解决:CentOS7中无法连接网络
|
运维 监控 安全
持续测试新范式:拨压测一体化
持续测试新范式:拨压测一体化
950 90
|
JSON 前端开发 测试技术
性能测试(8)——Jmeter基础入门
Get、Post请求(以个人学生管理系统为例) 在线程组中右键新建“用户定义的变量”,添加键值对,如果在请求中需要使用到该变量,则在“值”这一栏下,填写${该变量名称},来引用该变量的值。
394 0
性能测试(8)——Jmeter基础入门
|
资源调度 算法
深入理解网络中的死锁和活锁现象
【8月更文挑战第24天】
669 0