全栈Jmeter接口测试(五):json提取器元件及jsonpath介绍,响应断言元件

news2024/10/6 14:25:31

Jmeter(10):json提取器元件及jsonpath介绍

json提取器元件介绍:

  json提取器与正则表达式提取器功能类似,也是用来截取响应信息的部分保 存到指定的变量中去,不同的是,它只能用来处理响应正文,并且响应正文必须 是json格式的。它的优势是能更快更灵活的截取json格式文本中的内容。json提 取器在jmeter5.2.1版本中部分字段没有汉化过来。

路径:右击http请求——后置处理器——json提取器

如下图所示:

 json提取器元件字段介绍:

名称/注释:自定义的描述性文字

APPly to: 作用范围 

  Main sample and sub-samples: 作用于主节点的取样器及对应子节点的取样器

  Main sample only:仅作用于主节点的取样器

  Sub-samples only: 仅作用于子节点的取样器

  JMeter Variable Name to use: 作用于jmeter变量(输入框内可输入jmeter的变量名称),从指定 变量值中提取需要的值

Names of created variables:Jmeter变量的名称

JSON Path expressions:调试通过的json path表达式;常用的表达式为$.标签名、$.标签名[0].标签名;详情见下面的jsonpath介绍

Match Numbers:匹配数字(0代表随机,1代表第一个,-1代表所有),默认不 填写是获取符合条件的第一个,与正则表达式类似

Compute comcatemation var(suffix_ALL):如果发现许多结果,插件将使用“,” 分隔符将它们连接起来,并将其存储在名为_ALL的var中

Default Values:当没有获取到参数值时的默认值

备注:

  当json提取器要提取两个值(或两个以上)的时候,一定要填写默认值,不然会报错“Mismatch between number of variables, json expressions and default values”


JsonPath介绍:

  JsonPath 是一种信息抽取类库,是从JSON文档中抽取指定信息的工具, 在Python、Java、Javascript等编程语言中都有相应的类库提供。jmeter的json 提取器元件就可以使用jsonpath语法来截取json文档的内容。

json数据视图展示的地址:https://www.bejson.com/

jsonpath语法如下:

  $:表示根目录

  .:表示下一节点

  ..:表示任意一个节点

举例如下:

$.nums : 其中$代表根目录,这个表达式能取出10

$.tags[0].name: 遇到数组,使用[下标] ,这个表达式能取出 新梦想

$..name:任意节点中有name的值,则取第一个值;这个表达式也能取出 新梦想

                                                                     

  在使用requests发送接口请求时,使用jsonpath时,jsonpath返回的是列表形式

 

 

Jmeter(11):响应断言元件

响应断言元件介绍:

  响应断言元件的功能是对接口的响应信息进行自动断言校验,来判断接口测 试得到的接口返回值是否正确。jmeter中该元件支持将请求或响应的各个字段与 模式字符串进行比较。有了该元件,就可以完成自动化接口测试,而不需要用手 工核对接口返回的结果

路径:右击http请求——断言——响应断言

展示如下:

 响应断言元件字段介绍:

名称/注释:自定义描述性文字

APPly to: 作用范围

  Main sample and sub-samples: 作用于主节点的取样器及对应子节点的取样器

  Main sample only:仅作用于主节点的取样器

  Sub-samples only: 仅作用于子节点的取样器

  JMeter Variable Name to use: 作用于jmeter变量(输入框内可输入jmeter的变量名称),从指定 变量值中提取需要的值

测试字段:要进行断言的响应字段选择,支持请求信息、响应信息等,其中响应 文本表示通过Apache Tika从各种类型的文档中提取文本

忽略状态:取样器的总体成功取决于断言结果与现有的响应状态的结合,当选择 “忽略状态” 复选框时,响应状态被强制成功,再进行本次断言评估

    一个请求有多个响应断言,当第一个断言设置该选项,那么如果第一个断言失败后,第二个断言成功,事务还是成功状态(最后的断言必须勾选)

模式匹配规则:

  1、包括 - 如果文本包含正则表达式模式,则为true

  2、匹配 - 如果整个文本与正则表达式模式匹配,则为true

  3、相等(Equals)- 如果整个文本等于模式字符串,则为true(区分大小写)

  4、字符串(Substring) - 如果文本包含模式字符串,则为true(区分大小写)

  5、否 - 反转检查结果,用于表示不包含,不匹配,不等于,没有和模式字符串 相匹配的Substring。

  6、或者 - 一个断言可以添加多个“要测试的模式”。使用OR选项后,只要其中 有1个模式匹配,断言将会成功。不选择“OR”时将默认为AND选项,必须所 有模式都匹配,断言才会成功。

要测试的模式:输入结果期望值,可以增加多行期望结果

自定义失败消息:设置自定义的断言失败消息来替换系统默认的失败提示信息。


实战举例:

响应文本:判断返回的body中是否有7200;如下图

响应代码(响应状态码):判断响应的状态码是否为200;如下图

响应信息: 判断响应headers中是否为OK;如下图

响应头:判断响应headers中的信息是否有指定的信息;如下图:

请求头:判断请求头中是否有指定的信息;如下图

 URL样本:判断url里面是否有指定的信息;如下图

 

重点:学习资料

600g的学习资料懂的都懂

 

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

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

相关文章

ITE Super IO 学习 – 串口

串口都算是一个比较古老的功能了,也就是比较成熟了。Super IO中的大部分是硬件已经做好的,BIOS这边只需做小小的改动甚至默认便可以工作了。 串口寄存器 串口有关的寄存器总的来说有4个,两个用来设置IO资源的地址,一个是中断号选择,还有一个特殊配置寄存器。 Seri…

高级路由期末命令配置

文章目录前提要求(1)拓扑图搭建及IP地址规划拓扑图配置:IP地址表规划表1网络连接规划表表2 网络设备明细表表3 IP规划表(2)OSPF(3)BGP(4)路由引入(5)路由选择&#xff08…

PicoDet代码学习记录

推理步骤 [picodet_s_320_coco.yml] Infer.py main()->run()Trainer.py __init__() self.model create(cfg.architecture) Picodet.py from_config()->__init__() head create(cfg[head], **kwargs)时候调用: Layers.py MultiClassNMS __…

Django(一)

一、Django介绍 1、python语言编写的开源web框架 2、重量级python web框架,配备了常用的大部分组件 3、组件: ※基本配置文件/路由系统 ※模型层(M)/模板层(T)/视图层(V) ※co…

Cadence创建插件焊盘(超详细)

背景:Cadence画封装,在我看来,操作是比较不方便的事儿,所以在此在记录一遍。要画一个插件封装,需要调用画好的焊盘(AD里直接设置即可),另外放置好pin的位置和绘制好边框。包括遇到的…

SpringBoot集成阿里EasyExcel导出excel高级实战

目录参考一、引入包二、导出到文件并输出到后台三、过滤字段方式1:类上加注解 ExcelIgnoreUnannotated,过滤属性没有ExcelProperty注解的字段方式2:指定字段加注解方式3:代码指定过滤字段, 同一个excel生成两个sheet分别过滤不同字…

clickhouse集群搭建

一、clickhouse单机部署 clickhouse镜像下载地址 https://mirrors.tuna.tsinghua.edu.cn/clickhouse/ 1、关闭防火墙 #查看防火墙状态systemctl status firewalld#关闭防火墙systemctl stop firewalld#设置防火墙服务开机不自启systemctl disable firewalld#再次查看防火墙检…

开源软件如何使企业和业务受益

在当今技术驱动、快速发展的商业环境中,越来越多的公司选择投资开源软件。开源为企业提供了许多优势:更快的创新步伐、来自庞大而热情的社区的强大支持以及不受供应商锁定的影响。 对于许多人来说,开源不仅仅是编码。它代表了一种生活方式。…

使用IDEA工具,通过Java API 操作 HDFS (文件/目录的操作,含源码,详细操作步骤)

文章目录一,了解 HDFS Java API(一)HDFS常见类与接口(二)FileSystem的常用方法二,编写Java程序访问HDFS01 创建Maven项目02 添加相关依赖03 创建日志属性文件(1)在resources目录里创…

2022年还剩半个月,我从外包公司离职了...

今天是12.12,距离元旦也仅剩半个月,大家都在考论假期怎么过,没错,我离职了... 19年大专毕业通过校招进入了一家外包公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了&#xff…

MyBatis 注解开发

文章目录一、单表查询1. Select 注解2. Insert 注解3. Update 注解4. Delete 注解5. Param 注解二、多表关联查询1. 一对一查询2. 一对多查询3. 多对多查询一、单表查询 1. Select 注解 前面的章节介绍了 MyBatis 的基本用法、关联映射、动态 SQL 和缓存机制等知识&#xff0…

[附源码]计算机毕业设计房屋租赁系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis MavenVue等等组成,B/S模式…

算法竞赛入门【码蹄集进阶塔335题】(MT2201-2225)

算法竞赛入门【码蹄集进阶塔335题】(MT2201-2225) 文章目录算法竞赛入门【码蹄集进阶塔335题】(MT2201-2225)前言为什么突然想学算法了?为什么选择码蹄集作为刷题软件?目录1. MT2201 字符串转换2. MT2202 Summer Pockets3. MT2203…

alsa框架与音频芯片移植基础

ALSA音频框架 Alsa是Advanced Linux Sound Architecture的缩写,即高级Linux声音架构,在Linux操作系统上提供了对音频和MIDI的支持。在Linux 2.6的内核版本后,Alsa目前已经成为了linux的主流音频体系结构。 除了 alsa-driver,ALS…

CSS -- 使用纯CSS绘制三角形及常见案例汇总

文章目录1. 绘制原理2. 绘制最简单的三角形3. 绘制对话框4. 绘制两条直角边不等长的三角形1. 绘制原理 网页中常见一些三角形,使用 CSS 直接画出来就可以,不必做成图片或者字体图标 给每个边框不同的颜色可以看到,每个边框其实都是一个小三…

测试(缺陷管理)

目录 1.缺陷管理理论 1.1.定义 1.2缺陷的名称 1.3.产生缺陷的原因 1.4.缺陷管理流程 1.5.缺陷管理生命周期与状态 2.如何提交缺陷 2.1.提交的Bug的目的 2.2.提交Bug的注意事项 2.3.提交Bug报告应遵循的原则 2.4.Bug报告需包含哪些内容 1.缺陷管理理论 1.1.定义 软件…

rust编程-rust所有权理解(chapter 4.3 Slice切片类型)

目录 3. 切片(Slice)类型 3.1 String slice(字符串切片) 3.2 其它切片 3. 切片(Slice)类型 切片可以用来获取一个集合中连续的元素序列,且切片是一种引用类型,因此不具有所有权。 如下是一个小的编程示…

day17_面向对象的三大特征之一(多态)

概述 多态是继封装、继承之后,面向对象的第三大特性。 生活中,比如求面积的功能,圆、矩形、三角形实现起来是不一样的。跑的动作,小猫、小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫、鸟类和飞机&a…

【数字IC设计】Design Compiler入门

本博客参考自文章链接 本文以全加器为例,演示DC综合的流程。设计文件如下: module full_adder( input clk, input rstn, input [31:0] a_in, input [31:0] b_in, input c_in, output reg [31:0] sum_out, output reg c_out ); wire c_out_w; wire [31:0…

[vue学习笔记]数组+事件+v-model的使用

1.关于数组的使用以及常见的函数 (1)在队尾操作函数:push():追加,pop():删除 arr.push(9,8,7,6); 这种批量追加的方式也是被允许的 (2&#xf…