在Jmeter中跨线程组传递变量(token)--设置全局变量

参考资料:

Jmeter跨线程组传递参数(token)_jmeter获取token传递给下一个线程组详解-CSDN博客

        最近工作中遇到一个问题,就是如何跨线程组传递变量,比如token,后来找到一些资料解决了该问题,目前有两种方式都可以解决,我这边会记录下来,以备后期使用。

1、首先就是在jmeter中配置登录接口、提前需要传递的变量,需要接收变量的接口等,首先需要在同一个线程组中跑通,这个过程就不赘述了,其它教程都有。

2、我这边需要从登录接口中传递的值已经提取出来了,如步骤1中所示,需要传递的值引用名称为:data;这点要注意了,后面需要用到这个名称变量

3、在提取需要传递变量的接口下添加一个BeanShell后置处理程序组件,登录接口右击-添加-后置处理器-BeanShell 后置处理程序。

4、BeanShell 后置处理程序组件添加完成后,需要用到自带的${__setProperty(key,value,true)}函数;点击Tools-函数助手对话框;选择_setProperty函数后配置该函数,如第二张图所示。

        4.1:输入属性名称:dataTOO,随便定义一个全局变量的名称,用于其它线程组接口的调用

        4.2:Value of property:输入在登录接口中通过正则提取后定义的变量值名称,我这边为步骤2中的  data。

        4.3:配置上面两个属性即可,然后点击生成按钮,复制生成的函数字符串。我这边生成的函数字符串为:${__setProperty(dataTOO,${data},)}

5、配置完成${__setProperty(key,value,true)}函数后将生成的字符串函数:${__setProperty(dataTOO,${data},)}复制到 步骤3 中添加的BeanShell后置处理程序组件中,如下图所示:

${__setProperty(dataToo,${data},)};

6、以上步骤就完成的需要全局变量data的提取和定义,下面就是传递给第一个线程组了,首先在测试计划中右击添加线程组。步骤如图所示

7、在第二个线程组中配置需要引用全局变量的接口。

8、需要引用的接口配置完成后,就需要配置引用${__P(key)}函数,点击Toole-函数助手对话框;选择_P;配置该函数

        8.1:在属性名称中填写在步骤4 中定义的全局变量名称(即需要全局传递的变量:data)

        8.2:点击生成按钮,将生成的字符串:${__P(dataToo,)}复制到需要引用该参数的地方。

9、我这边第二个线程组中的接口是需要在HTTP消息头管理器中引用登录接口生成的data变量或者说是token,所以我这边需要将步骤8中生成的字符串复制到HTTP消息头管理器中某个请求参数中。

       9.1: 在消息请求头中Authorization的值中输入步骤8 中生成的字符串:${__P(dataToo,)}

如下图所示:

10、当需要传递的参数设置为全局变量并经过第二个线程组的接口引用后还需要再配置测试计划中的选项。如果不勾选该选项会造成全局变量传递失败。

        10.1:在测试计划中勾选:独立运行每个线程组(例如在一个组运行结束后启动下一个)和主线程结束后运行tearDown线程组选项。

经过如上步骤的操作,参数就可以跨线程组进行转递了

下面介绍第二个方式:通过BeanShell后置处理程序和BeanShell预处理程序组件来实现的跨线程组传递参数。

1、在登录接口下添加BeanShell后置处理程序,并对提取以及需要传递的值:authorization;进行存储,如图所示:

//将登录接口中提取的值authorization,赋值传递给字符串 str
String str = vars.get("authorization");
//将字符串 str的值存储在全局变量idname中
props.put("idname",str);
//在日志中输出str的值
log.info(str)

2、在第二个线程组中所需要引用全局变量接口的前面添加BeanShell预处理程序组件,添加组件步骤如图所示;

3、配置该组件

        3.1:在传递给BeanShell的参数输入框中填写步骤1中提取的参数变量:${authorization}

        3.2:在代码编辑框输入输入:${__BeanShell(props.get("idname"),)};

//idname  为步骤1中BeanShell组件中定义的全局变量,存储了需要传递的参数值。
${__BeanShell(props.get("idname"),)};

4、将BeanShell预处理程序中的${__BeanShell(props.get("idname"),)};直接复制到所需要引用传递地方即可,如下图放在HTTP信息头管理器中

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

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

相关文章

QT 常用控件的常用方法

QRadioButton、QCheckBox 常用函数: text(): 用于获取单选按钮的文本标签。 setText(const QString &text): 用于设置单选按钮的文本标签。 isChecked(): 用于检查单选按钮是否被选中。 setChecked(bool checked): 用于设置单选按钮是否被选中。 setIcon(c…

Element-UI:如何实现表格组件el-table多选场景下根据数据对某一行进行禁止被选中?

如何实现表格组件el-table多选场景下根据数据对某一行进行禁止被选中? 在使用 Element UI 的 Table 组件时,如果你想要禁用某一行的选中(特别是在多选模式下),可以通过自定义行的 selectable 属性来实现。selectable …

rhcsa练习(3)

1 、创建文件命令练习: ( 1 ) 在 / 目录下创建一个临时目录 test ; mkdir /test ( 2 )在临时目录 test 下创建五个文件,文件名分别为 passwd , group , bashrc &#x…

uc/os-II 原理及应用(八) 系统裁减以及移植到51单片机上

两个习题 先了解下CPU上函数调用的过程: 一个程序取得函数地址,先保护现场将局部变量及参数压栈,再将调用函数的参数压栈,然后跳转到函数位置,将参数出栈,执行代码,结束后返回到调用位置,再怖复…

高等数学学习笔记 ☞ 洛必达法则与泰勒公式

1. 洛必达法则 1. 型与型未定式(洛必达法则) (1)型:若函数同时满足以下条件: (2)型:若函数同时满足以下条件: ①:当时&…

什么样的人适合从事FPGA开发的工作?

FPGA开发不仅要求扎实的技术基础,还非常看重团队合作、自信、沟通技巧以及细致入微的工作态度。从业者需具备面对复杂项目的自信,优秀的沟通能力以确保团队协作顺畅,严谨细心以应对精密的硬件设计,以及强烈的责任心来驱动每一个开…

【LeetCode】力扣刷题热题100道(26-30题)附源码 轮转数组 乘积 矩阵 螺旋矩阵 旋转图像(C++)

目录 1.轮转数组 2.除自身以外数组的乘积 3.矩阵置零 4.螺旋矩阵 5.旋转图像 1.轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 class Solution { public:void rotate(vector<int>& nums, int k) …

JAVA 使用apache poi实现EXCEL文件的输出;apache poi实现标题行的第一个字符为红色;EXCEL设置某几个字符为别的颜色

设置输出文件的列宽&#xff0c;防止文件过于丑陋 Sheet sheet workbook.createSheet(FileConstants.ERROR_FILE_SHEET_NAME); sheet.setColumnWidth(0, 40 * 256); sheet.setColumnWidth(1, 20 * 256); sheet.setColumnWidth(2, 20 * 256); sheet.setColumnWidth(3, 20 * 25…

卷积神经网络CNN——卷积层、池化层、全连接层

参考这篇文章,讲的很详细: 卷积神经网络CNN——卷积层、池化层、全连接层_卷积层,池化层,全连接层-CSDN博客 原文链接:https://blog.csdn.net/qq_59702185/article/details/143744365 学习目标 了解卷积神经网络的构成 知道卷积的原理以及计算公式 了解池化的作用以及计算…

怎么抓取ios 移动app的https请求?

怎么抓取IOS应用程序里面的https&#xff1f; 这个涉及到2个问题 1.电脑怎么抓到IOS手机流量&#xff1f; 2.HTTPS怎么解密&#xff1f; 部分app可以使用代理抓包的方式&#xff0c;但是正式点的app用代理抓包是抓不到的&#xff0c;例如pin检测&#xff0c;证书双向校验等…

身份鉴权(PHP)(小迪网络安全笔记~

免责声明&#xff1a;本文章仅用于交流学习&#xff0c;因文章内容而产生的任何违法&未授权行为&#xff0c;与文章作者无关&#xff01;&#xff01;&#xff01; 附&#xff1a;完整笔记目录~ ps&#xff1a;本人小白&#xff0c;笔记均在个人理解基础上整理&#xff0c;…

自定义音频播放样式结合Howler.js

滑动式滚动条 不使用audio默认样式 自定义音频播放样式 当前时间 开始时间 结束时间 可播放可暂停 滚动条可拖动进行同步 具体样式可调整npm install howler --save<template><div class"audio-player"><div v-if"isLoading" class"l…

LLM prompt提示构造案例:语音回复内容;o1思维链

1、语音回复内容 目的&#xff1a; 语音聊天助手的prompt&#xff0c;让大模型来引导聊天内容&#xff0c;简短和友好&#xff0c;从而文字转语音时候也比较高效。 ## 角色设定与交互规则 ### 基本角色 你是用户的好朋友. 你的回答将通过逼真的文字转语音技术阅读. ### 回答规则…

AES 与 SM4 加密算法:深度解析与对比

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

Sentinel服务保护 + Seata分布式事务

服务保护 【雪崩问题】微服务调用链路中某个服务&#xff0c;引起整个链路中所有微服务都不可用。 【原因】&#xff1a; 微服务相互调用&#xff0c;服务提供者出现故障。服务调用这没有做好异常处理&#xff0c;导致自身故障。调用链中所有服务级联失败&#xff0c;导致整个…

ssh2-sftp-client uploadDir Upload error: getLocalStatus: Bad path: ./public

报错解释 这个错误表明在使用 ssh2-sftp-client 这个Node.js库进行目录上传时遇到了问题。具体来说&#xff0c;是指定的本地路径&#xff08;./public&#xff09;不正确或者不存在。 解决方法&#xff1a; 确认当前工作目录&#xff1a;确保你在执行上传操作时的当前工作目…

AI赋能服装零售:商品计划智能化,化危机为转机

在服装零售这片竞争激烈的战场上&#xff0c;每一个细微的决策都可能成为品牌兴衰的关键。当市场波动、消费者口味变化、供应链挑战接踵而至时&#xff0c;许多品牌往往将危机归咎于外部环境。然而&#xff0c;真相往往更为深刻——“危机不是外部的&#xff0c;而是你的商品计…

基于YOLOv8的水下目标检测系统

基于YOLOv8的水下目标检测系统 (价格90) 使用的是DUO水下目标检测数据集 训练集 6671张 验证集 1111张 测试集 1111张 包含 [holothurian, echinus, scallop, starfish] [海参, 海胆, 扇贝, 海星] 4个类 通过PYQT构建UI界面&#xff0c;包含图片检测&#xff0c;视…

web-前端小实验4

实现以上图片中的内容 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>用户注册</title&…

【MATLAB第112期】基于MATLAB的SHAP可解释神经网络回归模型(敏感性分析方法)

【MATLAB第112期】基于MATLAB的SHAP可解释神经网络回归模型&#xff08;敏感性分析方法&#xff09; 引言 该文章实现了一个可解释的神经网络回归模型&#xff0c;使用BP神经网络&#xff08;BPNN&#xff09;来预测特征输出。该模型利用七个变量参数作为输入特征进行训练。为…