jmteter 参数提取器-使用正则表达式来提取数据

应用场景:
在实际运用过程中,我们经常需要会遇到B请求需要使用A请求返回的数据,将上一个请求响应的结果作为下一个请求的参数,例如token,这个时候我们就要用到提取器来提取数据,Jmeter工具自带了Json提取器 和 正则表达式提取器,这次主要是使用正则表达式提取器来提取数据

正则表达式主要用于:
1.字符串的匹配、提取处理
2.regular这个单词表示正则表达式的意思

正则表达式学习链接:
https://www.cnblogs.com/Simple-Small/p/9150947.html
正则表达式手册:
https://tool.oschina.net/uploads/apidocs/jquery/regexp.html

一、提取步骤如下:
1、新建请求A(示例:登录请求)
第一步:添加线程组
在这里插入图片描述
第二步:在当前线程组下添加HTTP请求
在这里插入图片描述
第三步:完善当前请求参数和请求头,并添加察看结果树来查看响应结果
在这里插入图片描述在这里插入图片描述

2、查看提取的表达式与提取数据是否正确

  • 选择RegExp Tester
    在这里插入图片描述
  • 输入提取表达式,提取想要的参数,例如在登录接口返回的数据中,要提取access_token ,
  • 提取表达式为:“access_token”:"(.+?)"
  • 可以看到已经提取到access_token数据
    在这里插入图片描述
  • 如果有多个参数需要提取的,用逗号(,)进行分隔区分,如图
    在这里插入图片描述

3、通过正则表达式提取

  • 添加正则表达式提取器
    在这里插入图片描述
  • 填写参数
    在这里插入图片描述
  • 参数说明:
  1)引用名称:下一个请求要引用的参数名称,如填写access_token,则可用${__P(access_token,)}引用

  2)正则表达式:例如:"access_token":"(.+?)"
  		():其中括起来的这部分就是要提取的
  		.:一个点表示匹配除“\n”之外的任何单个字符。(\n表示换行符)
  		+:+号表示匹配前一个字符,1次或者多次
  		?:表示非贪婪模式,找到一个匹配的数据就停止;贪婪模式,去掉?号就可以,表示将所有符合的数据都提取出来

  3)模板:用$$引用起来,$1$表示解析到的第1个值(如果有多个值,就添加多个:$1$$2$),以此类推:
  		取一个值的时候:
  			Match count: 1           --有一个值
  			Match[1][0]="access_token":"5c25ad54-a345-4828-9d01-b3739821416c"
  			Match[1][1]=5c25ad54-a345-4828-9d01-b3739821416c          --取到的第一个值

  		取多个值的时候:		"authorityId":"(.+?)"
  			Match count: 439        --有439个值
  			Match[1][0]="authorityId":"2757" 
  			Match[1][1]=2757                                   --取到的第一个值
  			Match[2][0]="authorityId":"4325" 
  			Match[2][1]=4325                                   --取到的第二个值
  			Match[3][0]="authorityId":"2185" 
  			Match[3][1]=2185                                   --取到的第三个值

  4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0

4、B请求调用从A请求提取的数据*

  • 使用函数助手的p函数去生成当前的参数并调用:${__P(access_token,)}
    在这里插入图片描述
  • 可以看到B请求的请求参数已经获取从A请求的响应中获取到了
    在这里插入图片描述
  • 响应成功
    在这里插入图片描述

二、正则表达式的举例说明如下

1、提取单个参数

  1. “access_token”:"(.+?)"

在这里插入图片描述
2、多个参数提取

1.“access_token”:"(.+?)",“applicationId”:"(.+?)"

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值