Jmeter之正则表达式提取器获取单个数据(图)

测试工具 创建于:2022-03-09
 
 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":"(.*)",
   
  设置正则表达式提取器



  添加调试取样器:


  
执行查看提取结果:   在调试取样器中就可以看到已经获取到了 message   其他三个 message 是获取到的 其它格式的值,也就是说咱们这个正则表达式它并不是唯一的可以确定一个值,但是它最先匹配的是“登录成功”。


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

      
5、使用 正则表达式提取器  提取到的值:格式 ${名称}     ${msg_g2}或${msg_g2}
      查看结果树,请求时参数已经使用了
      
6、常用正则表达式:   
· ():表达式的开始结束   
·  .*:匹配 0次或者 多次的任何字符   
·  \d+:匹配多个数字字符串,和 [0-9]+ 语法一样   
·  \w+:英文字母或 数字 的字符串,和 [a-zA-Z0-9]+ 语法一样   用 $$ 引用起来,只想用第一个用 $1$ ,如果在正则表达式中有多个正则表达式,则可以是 $2$ $3$ 等等。

      
  
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理

权威发布,测试选择不纠结!第15届软件测试行业报告,直击行业发展,把握未来方向!

原文地址:http://www.51testing.com/?action-viewnews-itemid-4481534

免责声明:本文来源于互联网,版权归合法拥有者所有,如有侵权请公众号联系管理员

* 本站提供的一些文章、资料是供学习研究之用,如用于商业用途,请购买正版。

发表于:2022-3-09 09:41 作者:守护往昔 来源:博客园