Jmeter基础入门教程【11】--常用功能详解:正则提取器

前言
作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
💬 如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
💬 人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺💬
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦

一、正则表达式提取器
1. 作用

JSON提取器只能提取响应内容,而正则表达式提取器可以提取响应头、请求头的值,当然也可以提取响应内容。
在这里插入图片描述

2. 参数详解

在这里插入图片描述

  • Apply to:应用范围,选默认的main sample only就行了
  • 要检查的响应字段:要提取的字段范围
    1. 主体:响应体,不包含响应头;最常用
    2. body(unescaped):响应体,替换了所有HTML转义符;不建议使用
    3. body as a Document:从不同类型的文件中提取文本;影响性能
    4. 信息头:响应头
    5. Requeste Headers:请求头
    6. URL:URL
    7. 响应代码:响应码(Response code)
    8. 响应信息:响应信息(Response message)
  • 引用名称:接收提取值的变量名,*必传
  • 正则表达式:正则表达式
  • 模板:从找到的匹配项中创建字符串的模板
    1. 如果一条正则表达式有多个提取结果,则提取结果是数组形式
    2. 模板 1 1 1 2 2 2…表示把解析到的第几个值赋值给变量,从1开始匹配
    3. 0 0 0表示整个表达式匹配的内容
    4. 若只有一个结果,只能是 1 1 1
  • 匹配数字(0代表随机):取第几个值(0:随机,默认;-1所有;1第一个值),非必传
  • 缺省值:缺省值,匹配不到值的时候取该值,非必传
  • Use empty default value:勾选后,提取不到值时,则返回空字符串

参数不好理解,下面来举例子啦~

3. 正则表达式提取器实栗

还是以这个地址的接口来测试哦

http://api.yesapi.cn/docs.php?keyword=%E4%BC%9A%E5%91%98&channel=api

入门实栗:

创建测试计划:
在这里插入图片描述
会员登录接口的响应内容:

{"ret":200,"data":{"err_code":0,"err_msg":"","uuid":"F118DD335346CE9D7094C97190587108","token":"C1CA708E57F0C33E548745B0D82ADA2A800D886D17BA44261459C39C52376C0D","role":"user"},"msg":"V3.3.0 YesApi App.User.Login 2022-03-20 10:25:40 hd215"}

正则表达式提取器-提取token:
在这里插入图片描述
正则表达式提取器-提取uuid:
在这里插入图片描述

  1. 正则表达式-----( )里面写匹配规则,用于解析正则表达式
  2. 正则表达式-----.*?表示匹配任意长度的任意字符,这也是最常用的正则表达式
  3. 一般(.+?)和(.*?)能够满足我们80%的使用场景

其他接口调用正则表达式提取的变量:
在这里插入图片描述

进阶实栗:

测试接口:http://api.yesapi.cn/docs-api-App.User.GetList.html

响应内容:

{
    "ret":200,
    "data":
    {
        "err_code":0,
        "err_msg":"",
        "users":
        [
            {
                "uuid":"F118DD335346CE9D7094C97190587108",
                "username":"xey032001",
                "role":"user",
                "role_desc":"普通会员",
                "status":0,
                "status_desc":"正常",
                "reg_time":"2022-03-20 10:25:40",
                "ext_info":
                {
                    "yesapi_avatar":"",
                    "yesapi_nickname":"",
                    "yesapi_email":"",
                    "yesapi_sex":"",
                    "yesapi_real_name":"",
                    "yesapi_points":0,
                    "yesapi_reg_source":"",
                    "yesapi_reg_note":"",
                    "yesapi_mobile":"",
                    "yesapi_expiration_time":""
                }
            },
            {
                "uuid":"AAC71046CFA51B8A55D4367652791D66",
                "username":"xey04",
                "role":"user",
                "role_desc":"普通会员",
                "status":0,
                "status_desc":"正常",
                "reg_time":"2022-03-19 13:22:24",
                "ext_info":
                {
                    "yesapi_avatar":"",
                    "yesapi_nickname":"",
                    "yesapi_email":"",
                    "yesapi_sex":"",
                    "yesapi_real_name":"",
                    "yesapi_points":0,
                    "yesapi_reg_source":"",
                    "yesapi_reg_note":"",
                    "yesapi_mobile":"",
                    "yesapi_expiration_time":""
                }
            },
            {
                "uuid":"97F22D1CD99D17C2CF29510C728F6570",
                "username":"xey03",
                "role":"user",
                "role_desc":"普通会员",
                "status":0,
                "status_desc":"正常",
                "reg_time":"2022-03-19 13:18:56",
                "ext_info":
                {
                    "yesapi_avatar":"",
                    "yesapi_nickname":"",
                    "yesapi_email":"",
                    "yesapi_sex":"",
                    "yesapi_real_name":"",
                    "yesapi_points":0,
                    "yesapi_reg_source":"",
                    "yesapi_reg_note":"",
                    "yesapi_mobile":"",
                    "yesapi_expiration_time":""
                }
            },
            {
                "uuid":"770A6910AF264AEB73F6ECAFEB5BBFB6",
                "username":"xey02",
                "role":"user",
                "role_desc":"普通会员",
                "status":0,
                "status_desc":"正常",
                "reg_time":"2022-03-19 13:15:35",
                "ext_info":
                {
                    "yesapi_avatar":"",
                    "yesapi_nickname":"",
                    "yesapi_email":"",
                    "yesapi_sex":"",
                    "yesapi_real_name":"",
                    "yesapi_points":0,
                    "yesapi_reg_source":"",
                    "yesapi_reg_note":"",
                    "yesapi_mobile":"",
                    "yesapi_expiration_time":""
                }
            },
            {
                "uuid":"690815A62298F01009010BA062773A9F",
                "username":"xey01",
                "role":"user",
                "role_desc":"普通会员",
                "status":0,
                "status_desc":"正常",
                "reg_time":"2022-03-19 13:14:03",
                "ext_info":
                {
                    "yesapi_avatar":"",
                    "yesapi_nickname":"",
                    "yesapi_email":"",
                    "yesapi_sex":"",
                    "yesapi_real_name":"",
                    "yesapi_points":0,
                    "yesapi_reg_source":"",
                    "yesapi_reg_note":"",
                    "yesapi_mobile":"",
                    "yesapi_expiration_time":""
                }
            },
            {
                "uuid":"24249E71ABBD72D7C1DE8B3E95A0FBBE",
                "username":"xey",
                "role":"user",
                "role_desc":"普通会员",
                "status":0,
                "status_desc":"正常",
                "reg_time":"2022-03-19 13:08:25",
                "ext_info":
                {
                    "yesapi_avatar":"",
                    "yesapi_nickname":"",
                    "yesapi_email":"",
                    "yesapi_sex":"",
                    "yesapi_real_name":"",
                    "yesapi_points":0,
                    "yesapi_reg_source":"",
                    "yesapi_reg_note":"",
                    "yesapi_mobile":"",
                    "yesapi_expiration_time":""
                }
            }
        ],
        "total":6
    },
    "msg":"V3.3.0 YesApi App.User.GetList 2022-03-20 11:16:58 hd215"
}

提取一个值:

正则表达式中只提取一个值,且匹配数字不是-1

  1. 未填写模板
    在这里插入图片描述
    PS:匹配数字填1,表示如果有多个uuid,则匹配到第一个,这里与JSON提取器相同

    测试结果:

    uuid=
    uuid_g=1
    uuid_g0="uuid":"F118DD335346CE9D7094C97190587108"
    uuid_g1=F118DD335346CE9D7094C97190587108
    

    可以看到,如果正则匹配到值,但是没有填写模板,则返回空

  2. 模板写$0$
    在这里插入图片描述
    测试结果:

    uuid="uuid":"F118DD335346CE9D7094C97190587108"
    uuid_g=1
    uuid_g0="uuid":"F118DD335346CE9D7094C97190587108"
    uuid_g1=F118DD335346CE9D7094C97190587108
    

    可以看到,如果模板填写的$0$,uuid取的是uuid_g0

  3. 模板写$1$

    测试结果:

    uuid=F118DD335346CE9D7094C97190587108
    uuid_g=1
    uuid_g0="uuid":"F118DD335346CE9D7094C97190587108"
    uuid_g1=F118DD335346CE9D7094C97190587108
    

    可以看到,如果模板写$1$,uuid取的是uuid_g1

  4. 模板写$2$(不存在)

    测试结果:

    uuid=null
    uuid_g=1
    uuid_g0="uuid":"F118DD335346CE9D7094C97190587108"
    uuid_g1=F118DD335346CE9D7094C97190587108
    

    可以看到,如果模板不存在,uuid为null(即使勾选了使用空默认值,也返回null)

提取多个值:
在这里插入图片描述
测试结果:

uuid_1=F118DD335346CE9D7094C97190587108
uuid_1_g=1
uuid_1_g0="uuid":"F118DD335346CE9D7094C97190587108"
uuid_1_g1=F118DD335346CE9D7094C97190587108
uuid_2=AAC71046CFA51B8A55D4367652791D66
uuid_2_g=1
uuid_2_g0="uuid":"AAC71046CFA51B8A55D4367652791D66"
uuid_2_g1=AAC71046CFA51B8A55D4367652791D66
uuid_3=97F22D1CD99D17C2CF29510C728F6570
uuid_3_g=1
uuid_3_g0="uuid":"97F22D1CD99D17C2CF29510C728F6570"
uuid_3_g1=97F22D1CD99D17C2CF29510C728F6570
uuid_4=770A6910AF264AEB73F6ECAFEB5BBFB6
uuid_4_g=1
uuid_4_g0="uuid":"770A6910AF264AEB73F6ECAFEB5BBFB6"
uuid_4_g1=770A6910AF264AEB73F6ECAFEB5BBFB6
uuid_5=690815A62298F01009010BA062773A9F
uuid_5_g=1
uuid_5_g0="uuid":"690815A62298F01009010BA062773A9F"
uuid_5_g1=690815A62298F01009010BA062773A9F
uuid_6=24249E71ABBD72D7C1DE8B3E95A0FBBE
uuid_6_g=1
uuid_6_g0="uuid":"24249E71ABBD72D7C1DE8B3E95A0FBBE"
uuid_6_g1=24249E71ABBD72D7C1DE8B3E95A0FBBE
uuid_matchNr=6

一个正则表达式有多个( ):

  1. 模板为空:
    在这里插入图片描述
    测试结果:

    uuid=
    uuid_g=2
    uuid_g0="uuid":"F118DD335346CE9D7094C97190587108","username":"xey032001"
    
    uuid_g1=F118DD335346CE9D7094C97190587108
    uuid_g2=xey032001
    

    可以看到,如果模板为空,取不到值,uuid为空

  2. 只有一个模板:
    在这里插入图片描述
    测试结果:

    uuid=F118DD335346CE9D7094C97190587108
    uuid_g=2
    uuid_g0="uuid":"F118DD335346CE9D7094C97190587108",
    "username":"xey032001"
    
    uuid_g1=F118DD335346CE9D7094C97190587108
    uuid_g2=xey032001
    

    可以看到,如果只有一个模板,取到了uuid_g1

  3. 有两个模板:
    在这里插入图片描述
    测试结果:

    uuid=F118DD335346CE9D7094C971q90587108,
    xey032001
    uuid_g=2
    uuid_g0="uuid":"F118DD335346CE9D7094C97190587108",
    "username":"xey032001"
    
    uuid_g1=F118DD335346CE9D7094C97190587108
    uuid_g2=xey032001
    

    可以看到,uuid取到了两个值uuid_g1和uuid_g2,并且用逗号拼接

    注意:

    • 引用名称、匹配数字、缺省值只需要填一个即可,不需要跟正则表达式的数量一致

    • 也可以用. - 拼接,只要模板也用. 或- 拼接即可,如模板填: 1 1 1- 2 2 2q

  • 4
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值