JMeter之正则表达式提取器(Regular Expression)

简介

本文详细介绍如何进行 JMeter的上个接口返回的值作为下一个接口的参数。可以通过 正则表达式 提取所需要的值,主要用于复杂文本处理,如模式匹配、格式检验、文本替换等(注意如果返回为 JSON,更建议使用JSON提取器),本次仅作为学习记录。

步骤

① 查看需要提取字段的接口响应结果(JSON),编写正则表达式

实例1:通过课程信息获取到店铺ID接口的响应body,要取liveId字段(Response Body只有匹配到1个liveId),
所以 正则表达式 设置成 "liveId":(\d+),表示一个或多个数字;
模版设置$1$表示取第一个()中的值,不设置会取不到值,至于其它符号具体含义可以自行查文档,本人正则也不熟悉;
也可以使用GPT生成正则表达式之后在正则表达式验证工具上验证是否正确。


{
    "data": {
        "courseConfig": {
            "businessId": 21000008,
            "censorStatus": "audit_pass",
            "displayStatus": null,
            "updateTime": null,
            "title": "名称不符合运营规范",
            "liveId": 2000000113920002,
            "shareType": "normal",
            "imgUrl": "https:xxx/channelNormal.png",
            "createBy": null,
            "createTime": null,
            "updateBy": null,
            "id": null,
            "describe": null,
            "businessType": "1"
        }
    },
    "etag": null,
    "id": "1583460509602802",
    "state": {
        "msg": "操作成功",
        "code": 0
    }
}
JMeter正则表达式设置如下

在这里插入图片描述

示例2:通过通过indexRecommend接口获取店铺ID(数组)接口的响应body,要取liveId字段(Response Body匹配到多个liveId),
所以 正则表达式 设置成 "liveId":\s*"(\d+)",匹配数值(Match No)设置为3,代表取Response Body匹配到的第3个liveId;
indexRecommend接口获取店铺ID(数组)接口的响应body的数组太长就不贴上来了,需要的自行构造body进行测试。
通过调试取样器(DebugSample)可以看到已经取到了数组中的第3个liveId

在这里插入图片描述

延伸:
正则表达式验证工具RegexTester,可以用来验证所写的正则表达式是否有误
下载地址:https://sourceforge.net/projects/regextester/
下载后解压,不需要安装,直接点击应用程序

在这里插入图片描述
工具使用效果如下
在这里插入图片描述

②添加请求,设置变量参数

1)添加http 请求,并设置为get请求,
(2)打开Body Data(消息体数据)页,设置Json格式,并参数化,使用 ${变量名},取自
正则表达式提取器中的引用名称(Name of created variable) 。
(3)参数化时,可以直接设置,参照如下

在这里插入图片描述

通过结果树,我们发现Jmeter发送的getData已经成功读取 [通过课程信息获取到店铺ID] 接口的响应body的liveId数据,并成功参数化。

在这里插入图片描述

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值