Jmeter-正则表达式提取器详解

发布网友 发布时间:2024-12-24 02:08

我来回答

1个回答

热心网友 时间:8分钟前

场景:在进行B测试时,需要利用A接口返回的数据,因此需对A接口响应报文进行后置处理。

步骤1:在具体请求下添加Jmeter正则表达式提取器,此操作位于Jmeter的“后置处理器”板块。

步骤2:打开Jmeter正则表达式提取器控制面板,这里展示的是其主要组件及其用途。

位置1:指定名称及注释,以方便后续的引用与理解。

位置2:定义正则表达式提取内容的范围,具体说明请查阅相关协议文档。

位置3:进行正则表达式的设置,包括引用名称、正则表达式、模板、匹配数字及缺省值等参数。

引用名称:用于其他地方引用提取值的变量名称,如设置为“str”,引用方式为${str}。

正则表达式:用于提取内容的正则表达式,注意小括号表示提取,需将要提取的内容括起来。

模板:用$$表示引用,如果正则表达式中有多个提取表达式,则可以使用$1$、$2$等表示解析到的第几个值给变量。

匹配数字:0表示随机,-1表示所有匹配项,其他正整数表示在已提取内容中,第几个匹配内容。

缺省值:当正则匹配失败时,将使用的值。

关于正则表达式:在提取过程中,匹配数字为-1时,可以使用${str_1}、${str_2}等方式提取第1个和第2个匹配的内容。

正则表达式模式:正则*与正则*?的区别在于贪婪与非贪婪模式。

一个有效的正则表达式示例:name = "file" value = "(.+?)">。

解析:括号内为待返回的匹配字符串,点号匹配任何字符串,+表示一次或多次匹配,问号表示避免过度匹配。

更新:2021-04-29

用案例说明匹配规则,展示response返回的多个packageId。

获取第1个packageId:1676176670240829445

获取第1个packageId完整信息:"packageId":"1676176670240829445"

获取第2个packageId:(示例略)

获取第3个packageId:(示例略)

获取所有packageId,采用自由模式${变量_序号}。

测试结果:展示了通过正则表达式提取器获取不同情况下的匹配内容。

总结:

1.$1$与$0$的区别在于是否完整匹配头信息。

2.获取报文中第N个字段,可通过匹配数字1-N或采用匹配数字-1全部返回,再通过变量_序号选择特定的数值。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com