• Jmeter(四)正则表达式提取器


    1.使用背景

    在做接口测试的时候,可能需要将上一个请求的返回值中的数据作为下一个请求的参数,这个时候我们可以使用正则表达式提取器来解决这个问题。

    如下:我需要提取这个接口返回值中的id的值,作为下一个接口passid的参数

             {
                    "deviceIds": "115",
                    "recogUnpassCode": "2010",
                    "illegalCodes": "1001",
                    "startTime": 1619280000000,
                    "endTime": 1650902399000,
                    "id": 37,
                    "illegalName": "闯红灯",
                    "projectId": 0,
                    "roadName": "阿尔丁大街-黄河大街-北向南-20米-2",
                    "timeRange": "00:00:00-23:59:59"
                },
                {
                    "deviceIds": "115",
                    "recogUnpassCode": "2010",
                    "illegalCodes": "1001",
                    "startTime": 1619280000000,
                    "endTime": 1650902399000,
                    "id": 38,
                    "illegalName": "闯红灯",
                    "projectId": 0,
                    "roadName": "阿尔丁大街-黄河大街-北向南-20米-2",
                    "timeRange": "00:00:00-23:59:59"
                }

    2.操作步骤

    第一步:添加正则表达式提取器

             http请求--->后置处理器--->正则表达式提取器(提取内容)

             线程组--->取样器--->Debug Sampler(调试取样器)--->在调试取样器上 添加察看结果树(查看提取的内容)

    第二步:正则表达式提取

    按照固定格式从字符串中提取数据,本例中正则表达式如下:

    "id":(.+?),

    "id":(.*?),

    (1)引用名称:下个请求将要引用到的变量名;

    (2)正则表达式:提取自己想要的内容的正则表达式,id表示需要取的变量名,小括号()表示提取,即对于你想要提取的内容需要用它括起来;

    (3)模板:使用提取到的第几个值。因为可能有多个值匹配,所以要使用模板。从1开始匹配,以此类推;

    (4)匹配数字:表示如何取值。0代表随机取值,1代表全部取值。(写几就代表取第几个值);

    (5)缺省值:表示没有取到值的话,默认给它的值。建议填入引用名称,避免巧合情况下导致的数据问题。

    第三步:在Debug Sampler(调试取样器)中查看效果

    第四步:将正则表达式取到的值应用到下一个请求中

    本文参考博客

    Jmeter正则表达式常见问题

  • 相关阅读:
    *Binary Tree Inorder Traversal
    First Unique Character in a String
    回溯法模板
    *Linked List Random Node
    *Odd Even Linked List
    *Maximum Product of Word Lengths
    Flatten 2D Vector
    Docker (dockerfile)
    Docker数据卷
    Docker入门
  • 原文地址:https://www.cnblogs.com/fsxsmile/p/14739065.html
Copyright © 2020-2023  润新知