【性能测试】8_JMeter _JMeter跨线程组关联

文章目录

一、跨线程组关联

当有依赖关系的两个请求(一个请求的入参是另一个请求返回的数据) , 放入到不同的线程组中时, 就不能使用提取器保存的变量来传递参数值, 而是要使用Jmeter属性来传递。

1.1 说明

  • 在jmeter中,线程组内定义的变量,默认不能跨线程组使用
  • 在jmeter中,没有所谓的全局变量、环境变量

1.2 实现原理

1、将线程组1内的变量,当成属性设置到 jmeter配置文件(jmeter.properties)

yacas 复制代码
使用函数 __setProperty

2、线程组2,从jmeter配置文件(jmeter.properties)读取属性

yacas 复制代码
使用函数 __property

二、Jmeter属性的配置方法

yacas 复制代码
函数实现:
1. __setProperty函数:将值保存成jmeter属性
2. __property函数:在其他线程组中使用property函数读取属性

备注: setProperty函数需要通过BeanShell取样器来执行(BeanShell取样器作用:执行函数和java脚本)

三、场景

需求:请求获取天气的接口 ,获取 城市名称 作为 百度 请求参数。

json 复制代码
线程组1------天气的接口  https://www.weather.com.cn/data/sk/101010100.html
线程组2------请求:https://www.baidu.com/s?wd=北京,把获取到的城市名称作为请求参数

{
    "weatherinfo": {
        "isRadar": "1",
        "rain": "0",
        "temp": "18",
        "city": "北京",
        "WSE": "1",
        "qy": "1011",
        "njd": "暂无实况",
        "cityid": "101010100",
        "WD": "东南风",
        "SD": "17%",
        "Radar": "JC_RADAR_AZ9010_JB",
        "time": "17:05",
        "WS": "1级"
    }
}

四、操作方法

1、创建线程组1,发送请求,获取城市名。并使用json提取器,去提取城市名,保存到city变量中。

2、创建线程组2,发送请求,使用城市名进行百度搜索。

3、借助函数助手,使用 __setProperty函数,生成 设置属性的代码

4、将生成的代码,写入"BeanShell后置处理程序" 中(http请求--->后置处理器--->BeanShell后置处理程序)

5、添加"调制取样器",修改"JMeter属性=True"。查看结果树

6、借助函数助手,使用__property函数,生成 获取属性的代码。

7、将代码写入到 百度http请求的参数中。

相关推荐
2601_967987373 天前
Python在自动化测试中有哪些应用?
python自动化测试·selenium·appium·pytest·性能测试
蒸鱼Yuzheng3 天前
性能 CI 成本优化:设备分钟、风险分层与自适应测试选择
自动化测试·ci/cd·性能测试·测试平台·成本优化
泽众云测试5 天前
泽众软件与广州华南检验检测中心签约,PerformanceRunner性能测试工具助力第三方测评机构性能检测能力升级
软件测试·测试工具·性能测试
hi冻鱼6 天前
PCIe + DDR架构(一):实测——块长从4 KiB 换 1 MiB,带宽从133 MB/s 涨到 3179 MB/s
性能测试·fpga·pcie·mig·xdma·1024程序员节·ddr3
gwf2167 天前
RC/UC/UD/XRC四种传输模式性能对比与实战选型
性能测试·rdma·芯片测试·dpu·roce·智能网卡·perftest
banyoyo7 天前
jmeter测试使用方法
jmeter
汪汪8888888 天前
jmeter压测下载功能影响本地内存的方案
jmeter
跨境数据猎手9 天前
跨境电商系统JMeter 和 Gatling 分工
jmeter
gwf21610 天前
QP数量与并发深度对RDMA性能的影响:从单QP饱和到多路并行的极限压榨
性能测试·rdma·芯片测试·dpu·roce·智能网卡·perftest
han688910 天前
jmeter操作数据库
数据库·jmeter