Jmeter接口测试断言详解

news2024/9/27 9:29:11

目录

前言:

响应断言

Apply to (响应断言的应用范围)

要测试的响应字段(可通过取样器结果查看)

响应断言:模式匹配

Json断言


前言:

在JMeter中进行接口测试时,断言是一个非常重要的概念。断言允许我们验证接口的响应是否符合预期,从而确保接口的正确性和可靠性。JMeter提供了多种断言类型,可以进行各种不同类型的验证。

接口测试是目前最主流的自动化测试手段,它向服务器发送请求,接收和解析响应结果,通过验证响应报文是否满足需求规约来验证系统逻辑正确性。接口的响应类型通过Content-Type指定,常见的响应类型有

  • text/html : HTML格式   
  • text/plain :纯文本格式         
  • text/xml :  XML格式   
  • application/xml     : XML数据格式  
  • application/json    : JSON数据格式  

Jmeter通过响应断言组件,Json断言组件实现对响应报文的解析和验证。

  • 响应断言可以验证任意格式的响应报文
  • Json断言适用于Json格式的响应报文

响应断言

响应断言可以选择断言验证的范围(URL,响应头,响应码,响应体,响应附件),匹配的模式(纯文本还是正则表达式匹配),具体选项如下:

Apply to (响应断言的应用范围)

  • Sub-samples适用于发送一个请求同时触发多个子请求的情况,一般情况下推荐使用Main Sample only,仅校验发起的请求响应。对跟随重定向的请求,重定向后的请求是主请求。
  • Jmeter Variable可对Sampler中生成的Jmeter变量进行校验,此处写明变量名。

要测试的响应字段(可通过取样器结果查看)

  • 响应文本:最常用的选项,服务器的响应文本(不包含响应头信息)
  • Document(text):除了文本响应还支持 PDF/ Office/ Audio/ Video ,Apache Tika 解析服务器响应内容,很耗内存而且很容易解析失败,非特殊需求不建议使用此选项。
  • Response Headers:响应头
  • URL样本:  请求url,如果有重定向包含重定向url
  • 响应代码:Http返回的响应码  
  • 响应信息: 响应代码对应的响应信息eg:OK(200),可在结果树中查看代码和信息
  • Ignore Status: 当http 响应代码为400/500时,jmeter默认请求失败,要验返回码为500需勾选ignore status。Sampler下多个断言是叠加作用的,只要有一个断言勾选了Ignore Status就可以。

响应断言:模式匹配

  • 包括:支持纯文本和正则,验证返回包括指定的内容
  • 匹配:支持纯文本和正则,正则需全匹配(正则必须匹配全部返回,而非部分返回)
  • Equals:字符串相等,纯文本匹配,验证返回结果和指定结果完全一致
  • SubString:字符串包含,纯文本匹配,验证返回结果包含指定结果
  • 否:结合上述条件取反,若上述断言结果为false,取否后,最终断言结果为true

Json断言

Json断言是针对Json报文的断言方式,通Json Path提取出Json响应报文中的字段,再采用纯文本或者正则去验证Json Path的提取结果,Json结合了Json Path和正则表达式,有如下选项

  • Additionally assert value:文本验证,此处是完全匹配,勾选上此选项后再勾选Match as regular expression,可以触发正则匹配。
  • Match as regular expression:支持正则表达式匹配
  • Expect null:判定返回为null
  • Invert assertion:倒置断言结果

Json Path是用于确定 JSON 文档中某部分元素位置的语言。它将 JSON 数据转换为 DOM 树状结构,并提供在数据结构中寻找节点的能力。Jmeter提供组件来验证Json Path的语法正确性,以及元素匹配情况。可以在察看结果树中将响应报文的格式从Text切换为Json Path Tester,并在Json Path Expression栏中输入相应的Json Path ,点击Test,察看JsonPath的定位结果。

目前接口测试最主流的交换文档就是Json报文,无论是响应断言还是Json断言,核心都是对正则表达式,JsonPath 语法的理解。Jmeter 内置了JsonPath的校验工具,针对正则表达式,可通过在线正则表达式工具进行测试:http://tool.oschina.net/regex/

响应断言和Json断言可以涵盖大部分的接口校验需求,针对更加复杂的接口校验需求,比如数据库校验,比如复杂计算逻辑的校验 ,可通过Beanshell断言组件编写脚本来实现断言。

作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=_FQDD5qd4CZYjk9Qsbu492DEviPX0SmQ&authKey=r8q0copgJMRQ7Mo5KrdutBNlmlb5b7%2FXEUDLCKd%2BaItO2gSPEw34DPc2HndTVJ%2FM&noverify=0&group_code=574737577

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

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

相关文章

十七、docker学习-docker-compose安装nginx反向代理

compose安装nginx反向代理 IDEA安装docker插件 idea安装docker插件。Dockerfile、docker-compose.yml文件大部分内容会有提示信息。方便开发人员编写配置文件。 https://plugins.jetbrains.com/plugin/7724-docker/versions基础镜像 docker pull 1.21.0-alpine docker pull…

一文读懂SQL中的Aggregate(聚合) 函数和Scalar(标准)函数

目录 前言: 一、SQL Aggregate 函数 1、AVG() 函数 2、count()函数 3、MAX() 函数 4、MIN() 函数 5、SUM() 函数 6、SQL GROUP BY 语法 7、SQL HAVING 子句 8、SQL EXISTS 运算符 9、SQL UNION 操作符 二、SQL Scalar 函数 1、SQL UCASE() 函数 2、SQ…

Swift 周报 第三十二期

文章目录 前言新闻和社区现已提供新的设计资源visionOS SDK 现已发布 提案Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组自主整理周报的第二十三期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。 欢迎投稿或推荐内容。…

力扣 -- 174. 地下城游戏

题目链接:174. 地下城游戏 - 力扣(LeetCode) 下面是用动态规划的思想解决这道题的过程,相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴。 参考代码: class Solution { public:int calculateMinimumHP(vector&…

【上海海事大学806】23上岸学姐经验分享

今天很荣幸请到了一位23上岸上海海事大学的学姐来给大家做一期经验分享!!!我之前也有做过关于上海海事大学806的一些真题解析以及重点勾画,希望能帮到大家, 一、学姐经验分享 很荣幸你能看到我的考研经验分享&#x…

第七章 版本控制器——git

第七章 版本控制器——git 一、git的历史二、git的特点与发展1、git的特点2、git与github 二、git的安装与注册1、git的安装2、git的使用(1)github注册(2)创建远端仓库(3)将远端仓库镜像复制到本地仓库指令…

LIS实验室信息管理系统功能模块(Oracle数据库、Client/Server架构)

一、系统框架简介 1、技术框架 (1)总体框架: ♦SaaS架构的Client/Server应用 ♦服务可伸缩,多服务协同 ♦服务可拆分,功能易扩展 (2)技术细节: ♦体系结构:Client/Serv…

零基础小白暑假QT实训1

一.前言 今天就要开始暑假短学期的实训了,本来课堂也要求记笔记,这里我就开始分享我将来五天的学习过程吧。 二.QT安装过程 首先,提供一下我的链接: 本来上传到我的阿里云盘了的,结果压缩包不给分享,抱歉…

互联网高可用架构探讨 | 京东云技术团队

高可用指标与问题 高可用,英文单词High Availability,缩写HA,它是分布式系统架构设计中一个重要的度量。业界通常用多个9来衡量系统的可用性,如下表: 既然有可用率,有一定会存在不可用的情况。系统宕机一般…

【动态规划上分复盘】下降路径最小和|礼物的最大价值

欢迎 前言一、动态规划五部曲二、下降路径最小和思路:动态规划解法具体代码如下 三、礼物的最大价值思路:动态规划具体代码如下: 总结 前言 本文主要讲述动态规划思路的下降路径最小和以及礼物的最大价值两道题。 一、动态规划五部曲 1.确定状态表示&a…

61. 旋转链表

61. 旋转链表 原题链接:完成情况:解题思路:参考代码: 原题链接: 旋转链表 https://leetcode.cn/problems/rotate-list/ 完成情况: 解题思路: 参考代码: package 西湖算法题解_…

【C语言】指针进阶[中](函数指针、函数指针数组、指向函数指针数组的指针)

简单不先于复杂,而是在复杂之后。 目录 1. 函数指针 1.1 函数指针的用途 2. 函数指针数组 3. 指向函数指针数组的指针 1. 函数指针 这里的 * 可以省略: 因为函数指针本质上是一个指针,存储了一个函数的地址,因此可以通过函数指针调用对…

解锁虚拟人IP“悦小满”新玩法,怎么用动捕设备化身多重身份?

在数字时代,虚拟人IP成为文化产业与数字技术、数字平台相融合的产物。虚拟人IP是文化IP文化产业发展的新内核。 广东网络广播电视台顺应时代发展,推出了全球首个粤语虚拟偶像“悦小满”,具备着Z世代所喜爱的2.5次元的3D虚拟形象,…

React 企业级开发必备, 我来带你快速入门 !

目录 一、为什么我来安利你学习 React? 二、使用 React 的前置工作 三、简易 demo 学开发 3.1、jsx语法 3.2、函数式组件 demo 3.3、简单类组件定义 3.4、复杂类组件定义 3.4.1、state 写法一:复杂式 写法二:简便式 3.4.2、props 类型限制…

界面干净整洁的windows桌面清单软件有哪些

无论是工作还是日常生活,我们都有各种各样的任务需要完成。然而,如果不进行有效的规划和管理,很容易导致遗漏和拖延,影响工作效率。而一个界面干净整洁的Windows桌面清单,能够帮助我们更好地规划和安排待办事项&#x…

优雅编码:WebStorm引领你迈向开发巅峰

目录 引言WebStrom的优点WebStorm的缺点自用插件推荐总结: WebStorm 官网 引言 WebStorm 是一款功能强大的集成开发环境(IDE),它提供了许多功能和工具,帮助开发人员优雅编码。 因为我是一个前端开发工程师,…

力扣 -- 面试题 17.16. 按摩师

题目链接&#xff1a;面试题 17.16. 按摩师 - 力扣&#xff08;LeetCode&#xff09; 下面是用动态规划的思想解决这道题的过程&#xff0c;相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴。 参考代码&#xff1a; class Solution { public:int massage(vector<int…

哪款恢复数据的软件好用,数据恢复成功率高吗

我们的日常工作中免不了出现误删或者因为系统崩溃而丢失重要的文件的情况&#xff0c;这些文件的丢失会对我们的工作生活造成或多或少的损失。其实我们可以利用一些专业的软件来恢复这些丢失的数据。 许多网友会有疑问&#xff0c;哪款恢复数据的软件好用&#xff0c;数据恢复成…

2021-04-29 VSC++:吻合日。

缘由https://bbs.csdn.net/topics/399168383 void 吻合日() {//缘由https://bbs.csdn.net/topics/399168383int n 0, n1 0, y 0, y1 0, h 0, h1 0,z 0, j 0, x 0, t 0;std::cin >> n >> y >> h;z 自适年一月一日周一值(n) h;y1 y; t 返回月的…

Devops之制品库平台实践-nexus

Devops之制品库平台实践-nexus 目录 本节实践 实战名称&#x1f498; 实践&#xff1a;配置Maven代理仓库(测试成功)-2022.6.7&#x1f498; 实践&#xff1a;创建Maven本地仓库&#xff08;依赖&#xff09;-2022.6.10(测试成功)&#x1f498; 实践&#xff1a;创建Raw本地仓…