• 全(十七)Jmeter 请求元件 之 正则表达式提取器 提取 响应结果、foreach循环控制器


     一、Jmeter 之 正则表达式提取器获取单个数据

    1.准备

    可以从指定的响应数据里面提取你想要的内容:头部?响应数据?都可以

    正则表达式一定要添加在你指定的某个请求下面,作为他的子请求,否则提取不到指定的数据!

    操作实例:

    1))登录接口

    2)获取sessionid

    3)获取登录的状态信息

    操作须知:

    1)确定取值的范围

    2)确定取值的左右边界,最好是能够唯一确定你的值的边界。

    3)如果要查看我们的值是否正确,可以用 Debug Sampler(调试取样器)

    如何引用?${变量名}

    2.正则表达式提取器

    在指定的接口取样器上:右键—添加—后置处理器—正则表达式提取器

      

    正则表达式提取器 》页面

    Apply to 应用范围

    • Main sample and sub-samples
      • 当前请求的结果和当前请求的子请求的结果,两方面去匹配
    • Main sample only
      • 当前的请求
    • Sub-samples only
    • JMeter Variable
      • jmeter 二次提取

    引用名称

    • 其他地方引用时的变量名称,我这里写的phone,可自定义设置,引用方法:${引用名称}

    正则表达式

    • 数据提取器,()括号里为你要获取的的值。"mobilephone":"( 相当于LR左边界, )","leaveamount"相当于LR右边界。而括号里d+为正则表达式,用来匹配所需要获取的数据,何谓正则表达式文章末尾会附上说明

    模板

    • $$对应正则表达式提取器类型。-1全部,0 随机,1第一个2第二个,以此类推,若只有一个正则一般就填写$1$

    匹配数字

    • 正则表达式匹配数据的所有结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。-1表示全部,0随机,1第一个,2第二个,以此类推。若只要获取到匹配的第一个值,则填写1

    缺省值

    • 匹配失败时的默认值。可以不写。若需用于后续逻辑判断,可简单写为 ERROR。
    • 0:随机
    • -1:匹配所有

      

    3、如果你想在某个请求的响应结果里面拿到某个值

      

    正则表达式的格式:左边界(.*?)右边界  以 message 为例:

    • {"code":"200","message":"登录成功","token":"587501413531f2a47d0750dd56565f8830769e10c6b5226bfe6f4d1c1943decd"}

    1、确定他的左右边界  "message":"登录成功"

    2、写正则表达式  "message":"(.{4})", 或 "message":"(.*)",

    练习网址:https://tool.oschina.net/regex/

      

    设置正则表达式提取器

      

    添加调试取样器:

      

    执行查看提取结果:

      在调试取样器中就可以看到已经获取到了 message

      其他三个 message 是获取到的 其它格式的值,也就是说咱们这个正则表达式它并不是唯一的可以确定一个值,但是它最先匹配的是“登录成功”

      

     

    4、如何获取一组数据中有两个 code、message 数据

      ==

    5、使用 正则表达式提取器  提取到的值:格式 ${名称}

      ${msg_g2}或${msg_g2}

      

    查看结果树,请求时参数已经使用了

      

    6、常用正则表达式:

    • ():表达式的开始结束
    • .*:匹配 0次或者 多次的任何字符
    • d+:匹配多个数字字符串,和 [0-9]+ 语法一样
    • w+:英文字母或 数字 的字符串,和 [a-zA-Z0-9]+ 语法一样
    • 用 $$ 引用起来,只想用第一个用 $1$ ,如果在正则表达式中有多个正则表达式,则可以是 $2$ $3$ 等等;

        

    更多关于正则表达式的语句请跳转到此博客地址:https://www.cnblogs.com/shouhu/p/12165289.html

    二、Jmeter之正则表达式提取器获取数组(多条数据)

       

    1、添加:HTTP请求、正则表达式提取器、调试取样器、察看结果树

      

     2、在 查看结果树  查看发起的 http 请求的额 响应数据,找到需要匹配的左右两边

    png"></span>水果蔬菜
                        <i

    左边为png"></span>(.*)

    右边为空格(所以什么都不用写)

      

      打开正则表达式功能,写入正则表达式,连续按 Find 就可以查到所有符合条件的数据

      

    添加:

      

      

     添加:

      

    执行结果:

      

    2、Jmeter 请求元件 之 foreach循环控制器

    添加:ForEach Controller(ForEach控制器)

      

      

    添加 HTTP请求,百度网址

      

    执行结果:循环获取到所有的数据

      

      

      

    本文仅供参考;如果这篇文件对你有所帮助,麻烦动动发财的小手,推荐一波支持下万分感谢 *******请大家尊重原创,如要转载,请注明出处:作者:守护@往昔;转载自:https://www.cnblogs.com/shouhu/,谢谢!!*******
  • 相关阅读:
    关于链表的一个小程序
    位操作
    结构和其他数据形式
    存储类、链接、内存管理
    文件输入/输出
    为什么返回IEnumerbale而不是List
    EncType
    script标签不能闭合
    jqueryUI AutoCompelete
    ChangeType
  • 原文地址:https://www.cnblogs.com/shouhu/p/14783995.html
Copyright © 2020-2023  润新知