JMeter-正则表达式

         一、语法

二、正则表达式提取器

2.1添加正则表达式提取器

2.2设置正则表达式提取器

2.3验证正则表达式提取的值

2.4引用正则表达式提取的值

2.5一个正则表达式有多个(),提取多个结果

2.6 一个()中的正则表达式匹配到多个值,提取数组


一、语法

正则表达式(Regular Expression,在代码中常简写为regex、regexp或RE)是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

表达式规则:元字符+限定符

二、正则表达式提取器

正则表达式提取器是 JMeter 的内置功能,用于从响应数据中提取特定模式的文本。
适用于响应数据的内容没有明确定义结构的情况。当响应数据是自由格式的文本、HTML、XML 或其他非结构化数据时,可以使用正则表达式提取器来捕获信息,编写适当的正则表达式来匹配并提取所需的内容。

JMeter正则表达式提取器常用于接口关联。在一个线程组中,如果需要将上一个请求响应的结果作为下一个请求的参数,则需要对上一个请求的响应结果使用后置处理器,此时就要用到正则表达式提取器。

2.1添加正则表达式提取器

添加线程组-添加HTTP请求-添加-后置处理器-正则表达式提取器

2.2设置正则表达式提取器

(1)引用名称:要引用的参数名称,如msg,则可用${msg}引用

(2)正则表达式:
()括起来的部分就是要提取的,在()里写匹配规则 
表达式.*?表示匹配任意长度的任意字符
表达式.*?和.+?是最常用的规则表达式

注意:
表达式  .*  就是单个字符匹配任意次,即贪婪匹配。
表达式  .*?  是满足条件的情况只匹配一次,即最小匹配。
如匹配输入串101000000000100:
使用 1.*1 将会匹配到1010000000001, 匹配方法: 先匹配至输入串的最后, 然后向前匹配, 直到可以匹配到1。
使用 1.*?1 将会匹配到101, 匹配方法: 匹配下一个1之前的所有字符。

(3)模板:左右分别用$引用起来,$1$表示解析到的第1个值,如果有多个值,就添加多个,例如有3个值时,可以写为$1$ $2$ $3$,中间的空格起分隔的作用,可以不写,也可以用其他分隔符,如:$1$;$2$;$3$

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

2.3验证正则表达式提取的值

方法一:在查看结果树中,选择RegExp Tester查看

方法二:添加调试取样器后,在查看结果树中,查看调试取样器(Debug Sampler)

线程组-右键-添加-取样器-调试取样器

在查看结果树中,查看调试取样器

2.4引用正则表达式提取的值

添加新的HTTP请求,引用正则表达式提取的值。

格式:${引用名称}

2.5一个正则表达式有多个(),提取多个结果

msg_g1 = 模板$1$的参数  即第一个()中的内容
msg_g2 = 模板$2$的参数  即第二个()中的内容

在后一个请求中引用时,可以通过msg_g1和msg_g2,获取到对应的值

2.6 一个()中的正则表达式匹配到多个值,提取数组

若一个()中的正则表达式匹配到多个值,正则表达式提取器中,匹配数字需要填写-1,才能提取到多个值。

提取到的多个值后,需要结合 ForEach控制器,迭代提取到值,然后将提取到的值赋予到 HTTP 请求中使用。

a.线程组-右键-添加-逻辑控制器-ForEach控制器,然后将ForEach控制器移动到前一个HTTP请求下方。

b.设置ForEach控制器

输入变量前缀:即正则表达式提取器中的应用名称

开始循环字段(不包含):因为是不包含,要想从1开始,需填写0

结束循环字段(含):填写需要的数字

输出变量名称:设置后,在新的HTTP请求中被引用

c.在ForEach控制器中,添加新的HTTP请求,引用提取到的值。

 参考:jmeter接口关联:JSON提取和正则表达式提取-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值