Jmeter组件4. Regular Expression Extractor

时间:2021-10-11 13:28:26

位置:Post-Processors - Regular Expression Extractor

所谓的Post-Processors直译为后处理器,意思是在域内所有Sampler执行完后才会执行,所以如果你想只对某个Sampler生效的话,那就加成子对象

这个组件可以用来做关联,非常有用

Jmeter组件4. Regular Expression Extractor

Apply to,作用域,主要作用在于是否作用在sub-sampler

Field to check,分的很细,意思是你打算去哪里取值

Reference Name,变量名,取值后存储的对象名,可以用作${变量名},另外${变量名}_g#,#代表第几组,g0表示完全匹配,包含整个字符串,g1代表从第对括号开始匹配,g2表示第二对括号开始的匹配

Regular Expression: 正则表达式

Template: $1$指向group 1,即匹配第一个正则表达式括号内的内容,依次类推

Match No: 选择第几次匹配到的值,有可能一个Sampler下面匹配到多个值,这时这个变量就可以用到,0代表随机取,可以用在每次取到的值是一样的情况下

Default Value: 如果没有匹配到的默认值,建议设置,可以快速定位问题

 

例子

Jmeter组件4. Regular Expression Extractor

第一个请求里有个XSRF-TOKEN在response header里面

需要在第二个请求里用到,我在第二个请求的header manager里面定义了一个叫token的变量

Jmeter组件4. Regular Expression Extractor

将Regular Expression Extractor加为第一个请求的子对象

Jmeter组件4. Regular Expression Extractor

这样就可以执行成功了,如果去掉这里的Regular Expression Extractor,则会执行失败,因为这里的XSRF-TOKEN对象会一直变化,所以只有在第一个请求执行完了,去response header里动态地去取

打印下其中的变量

Jmeter组件4. Regular Expression Extractor

token_g=1 表示一组匹配,g0不算

token_g0,一个全量的匹配

token_g1,第一个括号内的匹配

因为只有一组匹配,所以这里Match No放0,随机只能取到唯一的一组值,g0不算