如何在jmeter中把响应中的数据提取出来并引用

jmeter做接口测试过程中,经常遇到请求需要用到token的时候,我们可以把返回token的接口用后置处理器提取出来,但是在这种情况下,只能适用于当前的线程组,其他线程组无法引用到提取的token变量值,所以必须要生成全局变量让测试计划下的所有线程组都可以引用变量。

同一个线程组下提取token并引用

1、执行获取token接口(登录接口),在查看结果树这里,使用$符号提取token值

$.根节点$.data.token 表示提取根节点下的data节点下的token节点的值

image.png

2、使用json提取器,提取登录接口响应结果中的access_token,保存在变量token中

变量路径就是把在结果树提取的路径写上

image.png

3、可以使用调试取样器查看提取的token值是否正确

image.png

4、下一个接口(列表查询接口)中,需要使用上个登录接口返回的token值,使用${token}引用

image.png

不同线程组下提取token并引用

1、使用json提取器提取登录接口响应结果中的access_token,保存在变量token中,操作与上文提到的一样。

2、使用函数助手对话框的setProperty函数,有两个输入框要填写(属性名称和Value of property),属性名称填写一个全局变量名,Value of property填写json提取器提取的access_token(json提取器提取到的access_token赋值给了变量token,此处引用变量${token}得到)

image.png

3、在json提取器下添加一个后置处理器BeanShell PostProcessor;

image.png

4、把生成的setProperty函数(${__setProperty(new_token,${token},)})复制到BeanShell PostProcessor中,此时已经把接口需要用到的access_token生成了并保存在全局变量new_token中。

image.png

5、引用该全局变量有两种方式

(1)使用函数助手中的property函数,只填写属性名称对应的输入框:全局变量名new_token

image.png

把生成的结果填写到列表查询接口需要引用的地方

image.png

(2)使用函数助手中的P函数,只填写属性名称对应的输入框:全局变量名new_token

image.png

把生成的结果填写到列表查询接口需要引用的地方

image.png

总结

${__setProperty()}${__property()}/${__P()}一起配合使用,setProptety等于把值拿出来, __property/__P 对值进行使用

__P__property函数的简化版,举个例子:${__P(prop1)}会返回属性prop1的值;${__P(prop1,123)} 会返回属性prop1的值,如果prop1未定义值,则返回123;

__property__P之间的区别:用法上__property函数仅仅是比__P函数多了一个可以存值的变量,举个__property用法例子:${__property(pro,var,abcd)}会返回pro的值,如果pro未定义值则会返回abcd,同时会将pro的值存到变量var中

注意事项

如果遇到跨线程组调用参数值不是token值而是变量名时且登录接口能够正常使用的情况下,请检查线程组设置

image.png

原因:如果不设置此项,会导致jmeter测试计划下所有添加的线程组同步运行,导致token还没获取出来就已经在调用了,导致获取值时出现错误

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

windows ubuntu子系统,单细胞篇 1.cellranger安装与分析

这几天,我将单细胞测序在windows ubuntu子系统中跑了一遍,将过程分享給大家。 单细胞测序conda create -n 10xdb #创建环境 conda activate 10xdbconda install -c bioconda cellranger -y #失败,可能源中没有 wget -O cellranger-7.…

使用深度学习集成模型进行乳腺癌组织病理学图像分类

基于预训练的VGG16和VGG19架构训练了四种不同的模型(即完全训练的 VGG16、微调的 VGG16、完全训练的 VGG19 和微调的 VGG19 模型)。最初,我们对所有单独的模型进行了5倍交叉验证操作。然后,我们采用集成策略,取预测概率…

说说你对链表的理解?常见的操作有哪些?

一、是什么 链表(Linked List)是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的,由一系列结点(链表中每一个元素称为结点)组成 每个结点包括两个部分&…

软件测试面试题,建议收藏。。。

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 1、B/S架构和C/S架构区别 B/S 只需要有操作系统和浏览器就行,可以实现跨平台&#x…

在Qt中为QWidget创建鼠标点击处理

当创建自定义控件MembershipCard时,需要继承QWidget类,并重写其鼠标点击事件。下面是完整的代码示例,包括前置声明、引入头文件以及详细解释: // membershipcard.h #ifndef MEMBERSHIPCARD_H #define MEMBERSHIPCARD_H#include &…

如何编写易于访问的技术文档 - 最佳实践与示例

当你为项目或工具编写技术文档时,你会希望它易于访问。这意味着它将为全球网络上的多样化受众提供服务并可用。 网络无障碍旨在使任何人都能访问网络内容。设计师、开发人员和撰写人员有共同的无障碍最佳实践。本文将涵盖一些创建技术内容的最佳实践。 &#xff0…

JS-30-async函数

上一节说,JavaScript异步操作需要通过Promise实现,一个Promise对象在操作网络时是异步的,等到返回后再调用回调函数,执行正确就调用then(),执行错误就调用catch()。 虽然异步实现了,不会让用户感觉到页面“…

2023年图灵奖揭晓,你怎么看?【模板】

2023年图灵奖揭晓,你怎么看? 2023年图灵奖,最近刚刚颁给普林斯顿数学教授 Avi Wigderson!作为理论计算机科学领域的领军人物,他对于理解计算中的随机性和伪随机性的作用,作出了开创性贡献。 提醒&#xff…

07 SQL进阶 -- 集合运算 -- 表的加减法

1. 表的加减法 1.1 什么是集合运算 集合在数学领域表示“各种各样的事物的总和”, 在数据库领域表示记录的集合. 具体来说,表、视图和查询的执行结果都是记录的集合, 其中的元素为表或者查询结果中的每一行。 在标准 SQL 中, 分别对检索结果使用 UNION, INTERSECT, EXCEPT 来…

构造JSON格式

后端构造JSON格式传给前端 方式一 后端 传递可迭代对象 记住,传json格式,如果你要用for循环 那么你的对象一定要是可迭代的对象 如果你单构造个类过去,你用for是肯定循环不了的,你必须使用List这种可以迭代的对象,才…

C# 中,可以使用以下方法优化 List 的 ForEach 循环速度

在 C# 中,可以使用以下方法优化 List 的 ForEach 循环速度: 使用 Dictionary 或 Hashtable 代替 List:在需要频繁查找元素时,Dictionary 或 Hashtable 的查找速度通常比 List 快。这是因为它们通过哈希码直接访问元素,…

【企业场景】设计模式重点解析

设计模式 在平时的开发中,涉及到设计模式的有两块内容: 我们平时使用的框架(比如spring、mybatis等)我们自己开发业务使用的设计模式。 在平时的业务开发中,其实真正使用设计模式的场景并不多,虽然设计号…

OpenHarmony实战开发-MpChart图表实现案例。

介绍 MpChart是一个包含各种类型图表的图表库,主要用于业务数据汇总,例如销售数据走势图,股价走势图等场景中使用,方便开发者快速实现图表UI。本示例主要介绍如何使用三方库MpChart实现柱状图UI效果。如堆叠数据类型显示&#xf…

CAP5_Monday

A Set to Max (Easy Version) 给定数组 a 和 b,可以执行以下操作任意次 : 让 a l ∼ a r a_l\sim a_r al​∼ar​ 中的所有所有元素变成 a i a_i ai​ ( l ≤ i ≤ r ) (l\leq i\leq r) (l≤i≤r), 其中 1 ≤ l ≤ r ≤ n 1\leq l \leq r \leq n 1≤…

C#基础|数据类型、变量

哈喽,你好啊,我是雷工! 01 数据类型 数据类型是为了方便存储数据的,为了将数据按照不同的分类存储,所以引入数据类型。这个在PLC中已经很熟悉了。 数据类型的作用:就是为了更好地管理内存,为…

嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记13:RTC实时时钟

系列文章目录 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记01:赛事介绍与硬件平台 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记02:开发环境安装 嵌入式|蓝桥杯STM32G431(…

基于Pytorch框架的CNN-LSTM模型在CWRU轴承故障诊断的应用

目录 1. 简介 2. 方法 2.1数据集 2.2模型架构 1. 简介 CWRU轴承故障诊断是工业领域一个重要的问题,及早发现轴承故障可以有效地减少设备停机时间和维修成本,提高生产效率和设备可靠性。传统的基于信号处理和特征提取的方法通常需要手工设计特征&…

基于Python长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析、生物量估算与趋势分析

原文链接:基于Python长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析、生物量估算与趋势分析https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247601336&idx4&sn143be5669da8ad336a455a4cca3d4b6a&chksmfa820d5fcdf584491…

【机器学习】机器学习创建算法第6篇:线性回归,学习目标【附代码文档】

机器学习(算法篇)完整教程(附代码资料)主要内容讲述:机器学习算法课程定位、目标,K-近邻算法定位,目标,学习目标,1 什么是K-近邻算法,1 Scikit-learn工具介绍,2 K-近邻算法API。K-近邻算法,1.4 …

java的文件字节输出和输入流

字符集: public class test1 {public static void main(String[] args) throws UnsupportedEncodingException {//1:编码:String data"b你a2";byte[] bytes data.getBytes();//默认使用(UTF-8)进行编码&…