首页 > 其他分享 >jmeter--后置处理器之json提取器介绍和使用

jmeter--后置处理器之json提取器介绍和使用

时间:2023-07-09 14:44:37浏览次数:41  
标签:extractor 提取 -- 配置 接口 json 组件 jmeter

1、json提取器使用场景

jmeter 后置处理器中,有三种提取器组件:json提取器、xpath提取器、正则表达式提取器, 这三种组件的功能相同,只是分别使用三种不同的方式进行提取数值。

一般在使用jmeter来调接口时,B接口的请求参数值是A接口的响应值时,需要通过提取器组件来提取出A接口相应中的值,然后将值赋值给B接口的请求参数中,来达到接口调用的目的。本次先介绍json提取器组件。

2、json提取器组件详细介绍

 如下图的xmind, 是相信介绍了json extractor组件的配置参数。比较常用的配置参数是:variable names、json path expressions, 一般都是提取某一个值,所以对这两个参数进行配置即可。

 3、结合实例讲解

(1)、json extractor 组件是添加在 http采样器的内部(点击http采样器,右键选择add -- post processors --  json extractor,则添加成功),

        执行jmeter脚本时会按照json表达式 对http请求的响应数据进行提取符合表达式要求的数据。

 如下图所示,是登录接口下方添加了一个json 提取器,来提取接口返回的token值。

 当然,如果你不确定自己写的json表达式是否正确,可以在【查看结果树】组件中进行调试,如下图所示, 左侧下拉框选择 "json path tester"后, 响应数据会按照json 的格式显示,此时在正下发有个 "json path expression" 的输入框,输入json表达式并点击“test”按钮,下方即可显示按照表达式提取出的结果。算是一个比较方便使用技巧。

 (2)、一开始并不知道一个json extractor 可以提取多个值。后来发现了此功能,感觉使用起来更加的方便,如下图所示,第一个http采样器下,我添加了三个json extractor ,因为要提取响应中的三个值。而第二个“登录”的http采样器中,只添加了一个json extractor便可同时提取到响应数据中的code 值和token值。

提取多个值时注意事项:如果要同时提取N个值, 则需要在names of created variables 中配置N个变量名、json path expressions 中要配置N个json表达、default Values 中要配置N个默认值(只提取一个值时,可以不对default Values 进行配置,但如果需要提取多个值时,一定要配置default Values ,且配置的个数一定要正确)

 (3)、关于匹配数量的设置, 一般都是按照默认设置(0):即当按照A匹配规格匹配到多个值时,从中选一个值。 如果你想把匹配到的数据都获取到的话,则需要将Match No 配置为0(其中Names of created variables 的设置为 AAValue), 此时若匹配到了N个值,则jemter 会将这N个值放到一个类似数组里面, 如果你想使用第1、2、x值时,则调取的变量名分别写成 ${AAValue_1}       ${AAValue_2}      ${AAValue_x}

另外 Compute concatenation var 是结合 Match No 为0  一起使用的。当Match No 配置为0 且Compute concatenation var 勾选时。匹配到的多个值会用逗号拼接起来,并复制给  设置的变量名_ALL  的变量,如下图所示。

 

标签:extractor,提取,--,配置,接口,json,组件,jmeter
From: https://www.cnblogs.com/ccnn9/p/17527267.html

相关文章

  • 2023.7.9
    1//选择结构2publicclassMain3{4publicstaticvoidmain(String[]args)5{6Scannerscanner=newScanner(System.in);7System.out.println("请输入内容:");8Strings=scanner.nextLine();9if(s.eq......
  • MyBaits查询MySQL日期类型结果相差8个小时
    问题描述在Java项目中使用MyBatis作为ORM框架,但是查询出的MySQL日期类型字段值总是比数据库表里的值多8个小时。具体说明:MySQL数据库表字段类型为timestamp,映射的Java日期类型为java.util.Date,当数据库表里的字段值为2023-07-0800:08:38时,查询出的Java字段值为2023-07-0808:0......
  • MacOS使用Bartender 4软件不显示未隐藏图标
    1问题自己打开了befocus这个软件,但是看不到图标显示在状态栏,自己确认了一下,自己也没有用Bartender4软件隐藏它 2检查一些软件更新,更新到最新版本解决问题 ......
  • TypeScript系列 3.接口和对象类型
    本系列知识部分基于小满ZS的TypeScript系列教程。我也会补充一些视频没有的内容。interface介绍interface即接口,在ts中用于描述对象的“形状”。js是鸭子类型,鸭子类型的通俗说法是:“如果它走起路来像鸭子,叫起来也是鸭子,那么它就是鸭子。”只要一个对象包含interface中......
  • hyperloglog
    hyperloglog应用场景统计某个网站的UV(UniqueVisitor,独立访客,一般理解为客户端IP(要考虑去重))例如qq空间,还有bilibili视频的点击量用户搜索网站关键词的数量统计用户每天搜索不同词条个数只保存对应的基数估计值(一个集合内不同元素的个数)而不保存对应的数据为什么......
  • Redis基本部署和使用​
    redis是什么Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSIC编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库。redis的优势高性能读取和写入数据、支持丰富的数据类型、数据原子性、支持分布式,理论上可以无限扩展、支持数据备份功能......
  • MySQL--Sorted Index Builds 导致备份失败故障分析
    问题概述xtrabackup备份失败,日志中有这样的信息InnoDB:Anoptimized(withoutredologging)DDLoperationhasbeenperformed.Allmodifiedpagesmaynothavebeenflushedtothediskyet.问题原因redologs会跳过一些DDL,PerconaXtraBackup监测到redolog有跳过时,它会......
  • [7月摸鱼计划] 困惑
    最近在参与中科昊芯的HX2000start-DSC28034PNT_V1.0开源活动,遇到一些困扰,首先开发手册是湖人版的,视频是027系列的,通过主办平台得到了原理图,发现官网例程引脚编号对不上,都要改,没有直接可用的例程,IDE方面须运行escipe环境下的Mingw会减少两个报错,但还有2个报错,还在摸索,希望有HX2000......
  • 最完美WIN10_Pro_22H2.19045.3155软件选装纯净版VIP50.7
    【系统简介】=============================================================1.本次更新母盘来自UUP_WIN10_PRO_22H2.19045.3155。进一步精简优化调整。2.只为呈现最好的作品,手工精简优化部分较多。3.OS版本号为19045.3155。个别要求高的就下MSDN吧,里面啥功能都有。4.集成《DrvCeo......
  • python获取小红书web_session,以及解决x-s签名验证(2023-07-09)
    一、web_session请求接口:https://edith.xiaohongshu.com/api/sns/web/v1/login/activate请求类型:post提交数据:{}这儿是两个字符{},笔者最初提交None,总得不到结果,chromeF12才发现需要这两个字符。二、签名验证x-s 该请求需要x-s签名验证,签名代码如下:a1="186d30820a4......