JMeter关联

本文详细介绍了JMeter处理请求间依赖的关联方法,包括正则表达式提取器、XPath提取器和JSON提取器的使用。通过具体场景,演示了如何从HTTP响应中提取数据并应用于后续请求,为压力测试中的数据传递提供解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、关联

当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,这时候就需要用到关联处理。JMeter可以通过“后置处理器”中的一些组件来处理关联

常用的关联方法:

(1)正则表达式提取器 (http://www.regexp.cn/Regex)

类似于一个公式,要找到左边界和右边界字段,

        “.”:通配符,一个.代表一个任意字符(除换行回车),

        “*”:表示前面的字符出现0次或者多次

        “?”:代表非贪婪匹配,找到左边界后,往右查找匹配有边界,只要有匹配的右边界就停止继续查找,再次查找左边界、右边界

        “<>()<>”:将()里数保存为一个参数,两边的<><>不要

        /d:表示数字

        如:010 111 1111,用正则表示为:(/d*)-(/d*)-(/d*),$1$、$2$、$3$:表示取出第1组值、第2组值、第3组值

        如:<title>.*</title>:贪婪匹配

                <title>.*?</title>:非贪婪匹配

(2)XPath提取器

(3)JSON提取器

二、正则表达式提取器

添加方式:测试计划-->线程组-->HTTP请求-->(右键添加)后置处理器-->正则表达式提取器

-引用名称:将参数提取出来以后,要保存到一个变量,引用名称就是变量名

-正则表达式:用什么方式匹配,匹配公式。提取出数据以后,把值存储到引用名称的变量里,若没有提取到值,则将缺省值保存到变量里

-模板:用$$引用起来,如果在正则表达式中有多个表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值

-匹配数字:0代表随机取值、1代表第一个结果、-1代表所有结果,通常情况下填0

-缺省值:如果参数没有匹配到值,那默认给一个值让它取

2.1场景1

        请求:http://www.jd.com  获取网页的title值

        请求:https://www.baidu.com/,把获取到的title作为请求参数

        2.1.1 操作步骤

                1.添加线程组

                2.添加HTTP请求--京东           

                3.添加正则表达式提取器

                 4.添加HTTP请求--百度

                5.添加查看结果树

2.2 场景2

匹配结果有多个时

可添加:测试计划-->线程组-->添加-->取样器-->Debug Sample 来进行调试

        如果匹配数字为1,则直接使用变量名来引用:${变量名}

        如果匹配数字为-1,则使用变量名+后缀的方式来引用:${变量名_s}

三、XPath提取器--定位元素、路径

添加方式:测试计划-->线程组-->HTTP请求-->(右键添加)后置处理器-->XPath提取器

tips:适用于返回的格式是HTML

3.1 场景

请求:http://www.jd.cn  获取网页的title

请求:https://www.baidu.com,把获取的title作为请求参数

3.2 操作步骤

1.添加线程组

2.添加HTTP请求--jd

3.添加XPath提取器     

4.添加HTTP请求--baidu

tips:引用变量需要加索引:/s?wd=${title_1}

5.添加查看结果树

3.3 参数设置(XPath提取器)

-Use Tidy(tolerant parser):如果勾选此项,则使用Tidy将HTML响应解析为HTML。当需要处理的页面是HTML格式时,必须选中该选项;当需要处理的页面是XML或XHTML格式(例如:RSS返回)时,取消选中该选项,勾选也行

-引用名称:存放提取出的值的参数

-XPath Query:用于提取值的XPath表达式

-匹配数字:如果XPath路径查询导致许多结果,则可以选择提取哪个作为变量

        0:表示随机

        1:表示提取第1个结果

        -1:表示提取所有结果(默认值),是个列表,取的时候要用索引取出,他们将被命名为<变量名>_N(其中N时从1到结果的个数)

        X:表示提取第X个结果,如果这个X大于匹配项的数量,则不返回任何内容,将使用默认值

-缺省值:参数的默认值

四、JSON提取器

添加方式:测试计划-->线程组-->HTTP请求-->(右键添加)后置处理器-->JSON提取器

tips:针对JSON格式的数据进行提取

配置:

        引用名称:匹配后的数据要存储的变量名

        JSON path expression: 是JSON的路径,一般为: $.weatherinfo.city

        引用:这届引用变量名即可

4.1 场景

        1.请求获取天气的接口:http://www.weather.com.cn/data/sk/101010100.html

        2.获取返回结果中的城市名称

        3.请求:https://www.baidu.com/s?wd=北京,把获取到的城市名称作为请求参数

4.2 操作步骤

        1.添加线程组

        2.添加HTTP请求-天气

         3.添加JSON提取器

        4.添加HTTP请求-百度

 

        5.添加查看结果树

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼排也爱小白菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值