Jmeter正则表达式提取器
简介
Jmeter后置处理器(post processors)的一种,用于将取样器请求到的结果——以正则表达式的方式——读取出来。
用于获取 每个请求 取样器 返回的 不同内容
当用于获取提取器的内容时,应置于取样器下方。
Apply to(作用范围)
- Main sample and sub-sample:匹配范围包括当前父取样器并覆盖至子取样器;
- Main sample only:匹配范围是当前父取样器;
- Sub-samples only:仅匹配子取样器;
- Jmeter Variable Name to use:支持对Jmeter变量值进行匹配
Field to check(设置匹配响应字段的查找范围)
即要在多大的范围内匹配正则表达式。
- Body:仅对响应数据的主体部分进行正则表达式匹配;
- Body(unescaped):针对替换了转义码的Body部分 匹配正则表达式;
- Body as a Document:对请求返回内容的文档部分进行正则表达式匹配;
- Response Headers:只匹配信息头部分的内容;
- Request Headers
- URL:只匹配URL链接;
- Response Code:匹配响应代码,比如状态码200;
- Response Message:匹配响应信息,比如返回成功;
Name of created variable(将通过正则表达式截取到的值,存到变量中,指定该变量的名称)
当使用正则表达式从一个请求返回信息中,截取多个字段时,此处也可只填写一个变量,如下图所示。
此时,截取到的多个值将会以变量名_g1
、变量名_g2
来使用,详见下图,这是自己专门实验的截图。
- 变量=截取的全部字段,彼此字段间以空格相隔,如上图第一行。
- 变量_g:应代表截取的变量个数?
- 变量_g0: 根据正则表达式匹配到的(截取前的)完整字段。
- 变量_g1:截取到的第一个字段,使用时
${变量名_g1}
。 - 变量_g2:截取到的第二个字段,使用时
${变量名_g2}
,如下图所示。
Regular Expression(正则表达式)
可百度在线正则表达式
来练习正则表达式,此处先给出一个在线正则网址。
Template($1$
表示会拿到第一个正则表达式匹配到的数据,待确认)
自己的理解,模板Template
的含义是提取结果的返回格式模板(当你在Regular Expression(正则表达式)
处设置多个提取点时,例如"errmsg":"(.*)","access_token":"(.+?)"
,那么提取的多个值将以模板Template设置的格式来返回给用户)。
目前自己从其他网商博客了解的信息是,如果在提取器的正则表达式
处填写了多个提取点(例如,"errmsg":"(.*)","access_token":"(.+?)"
。这对于Jmeter来说,会将此表达式当作两个正则表达式来处理——"errmsg":"(.*)","access_token":
和,"access_token":"(.+?)"
,则可以在Template
处填写$1$
、$2$
等等。$1$
代表第一个正则表达式"errmsg":"(.*)","access_token":
的截取结果,$2$
代表第二个正则表达式,"access_token":"(.+?)"
的截取结果,依次类推(注:如果在Template处填写的$1$
和$2$
间有空格,提取出的(.*)
和(.+?)
也会以对应空格间隔)。
$0$
指全文匹配,$1$ $2$
指同时获取第一个和第二个提取点。
Match No.(第几个匹配成功的)
Default Value(当未匹配到时,使用此值返回)
用于获取 每个请求 取样器 返回的 数组内容
即获取一个请求的多条重复数据,补入这篇博客(三),是否有效待验证