-
Regular Expression Extractor是一个后处理器元件,使用正则从服务器的响应中提取数据,并将这些数据保存到JMeter变量中,以便在后续的请求或断言中使用。在处理动态数据或验证响应中的特定信息时很有用。
-
添加Regular Expression Extractor元件:选中HTTP请求(HTTP Request) - 右键-添加(Add)-后置处理器(Post Processors)-选择正则表达式提取器(Regular Expression Extractor)
-
元件配置
【Apply to】:作用范围
(1)Main sample and sub-samples:作用于主节点的取样器及对应子节点的取样器
(2)Main sample only:仅作用于主节点的取样器,也是默认的选中的选项
(3)Sub-samples only:仅作用于子节点的取样器
(4)JMeter Variable:用于jmeter变量,输入框内输入jmeter的变量名称,从变量值中提取需要的值
【Filed to check】:匹配范围
(1)Body:响应报文的主体,最常用,也是默认选项
(2)Body(unescaped):是替换了所有的html转义符的响应主体内容,注意html转义符处理时不考虑上下文,因此可能有不正确的转换,不太建议使用
(3)Body as a Document:响应信息作为文本去匹配,注意这个选项比较影响性能
(4)Response Headers:响应信息头
(5)Request Headers:请求信息头
(6)URL:请求url
(7)Response Code:响应状态码,比如200、404等
(8)Response Message:响应信息
【Name of created variable】: 引用名称,其他地方引用时的写此变量名称
【Regular Expression】:正则表达式,()括号里为你要获取的的值。在输入正则表达式之前,可以添加一个View Results Tree组件,发送一次请求,验证一下正则表达式的匹配结果
【Template】:模板,形式是$1$ ,中间数字代表正则表达式第几组括号的匹配。 0 是特殊情况,所有字符串匹配
【Match No】:匹配数字,正则表达式可能匹配到多个结果,匹配数字即取第几个结果。-1表示全部,0随机,1第一个,2第二个,以此类推。若只要获取到匹配的第一个值,则填写1
【Default value 】:匹配失败时的默认值。可以不写。 -
引用变量:在Regular Expression Extractor配置完成后,通过${变量名}的格式来引用这些变量。引用时写的变量名称,便是Name of created variable配置的变量名称。
-
增加调试器,注意调试器也是在请求下的,在调试器中可查看匹配出的结果
-
注意事项:Regular Expression Extractor是后处理器元件,它提取的数据仅在其所在的线程组或请求范围内有效,不支持直接跨线程组使用变量。所以在使用这个元件的时候,需要进来避免跨线程组使用。
附一些正则的元字符: