【JMeter】跨线程组传递参数

文章目录

是什么

使用jmeter工具在两个或者两个以上的线程组之间传递参数。

为什么

往往我们接到一个性能测试任务需要对某一个接口进行压测时不需要每一次请求都去登录(如果每次都登录这样就会影响测试结果),那么遇到这种情况我们就要通过登录接口获取token(session、cookie),然后用另一个线程组进行压测。两个线程组直接无法直接共享参数,所以需要在线程组之间传递参数。

怎么做

JMeter变量作用域局限于所属线程,目的是让测试线程能够独立运转。有时候用户可能需要在不同线程间(可能属于同一个线程组,也可能不属于同一个线程组)传递变量。在Jmeter中,除了基本变量之外,还有一种,是它本身的属性,property,我们可以借助属性来完成线程组间的变量传递。属性为所有 JMeter 线程所共享,因此当某个线程设置一个属性后,其他线程就可以读取更新后的值。

  • 方法

    1. jmeter本身自带的内置函数\${__setProperty(key,value,true)},可以把某参数设置为jmeter的内置属性,也就是全局变量,多个线程都可以调用。
    2. 具体调用方法:调用jmeter内置函数${__P(key)},调用相应属性就可以。
  • 步骤

    1. 提取token
    2. 添加BeanShell后置处理程序。
      JSON提取到的token通过\${__setProperty(key,value,true)}函数,将变量通过BeanShell后置处理程序处理,成为jmeter的内置属性。(借助函数助手生成函数)

      {__setProperty(gb_token,{token},)}: 调用函数__setProperty,把BeanShell PostProcessor中的参数token的值赋值给gb_token,并设置gb_token为jmeter内置属性,全局变量,所有线程组可调用。
  1. 在HTTP信息头管理器中通过${__P(key)}函数调用。(借助函数助手生成函数)
相关推荐
张永清9 小时前
【图书介绍】清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》,专为解决实际问题而生
jmeter·性能测试·性能调优·性能分析
AIZHINAN4 天前
性能测试篇 :Jmeter监控服务器性能
运维·服务器·jmeter
程序员的世界你不懂4 天前
Jmeter 性能测试常用图表、服务器资源监控
jmeter
程序员的世界你不懂5 天前
Jmeter 命令行压测、HTML 报告、Jenkins 配置目录
运维·jmeter·jenkins
CesareCheung6 天前
jmeter读取上游接口并遍历数组数据并进行压测
jmeter
oh-pinpin6 天前
jmeter--While控制器--循环直到接口响应符合条件
测试工具·jmeter·压力测试
程序员的世界你不懂6 天前
Jmeter的元件使用介绍:(十)逻辑控制器详解
jmeter
程序员的世界你不懂7 天前
Jmeter的元件使用介绍:(七)后置处理器详解
jmeter
试着7 天前
零基础学习性能测试第六章:性能难点-Jmeter文件上传场景压测
学习·jmeter·零基础·性能测试
程序员的世界你不懂7 天前
Jmeter的元件使用介绍:(八)断言器详解
jmeter