通过案例带你轻松玩转JMeter连载(24)

简介: 通过案例带你轻松玩转JMeter连载(24)

6.2 后置处理器/提取器



1 正则表达式提取器


正则表达式提取器,由正则表达式来得到所需要的内容。通过右键点击菜单,选择“添加->后置处理器->正则表达式提取器”而获得。其界面如图33所示。


image.png

图33 正则表达式提取器


  • Apply to:作用范围,返回内容的断言范围。

   Ø Main sample and sub-samples:作用于主节点的取样器及对应子节点的取样器。
   Ø Main sample only:仅作用于主节点的取样器。
   Ø Sub-samples only:仅作用于子节点的取样器。
   Ø JMeter Variable:作用于JMeter变量(输入框内可输入JMeter的变量名称),从指定变量值中提取需要的值。注意输入的是变量名(var),而不是变量值(${var})。


  • 要检查的响应字段。

   Ø 主体:响应报文的主体,这个选项最为常用。
   Ø Body(unescaped):主体,是替换了所有的HTML转义符的响应主体内容,注意HTML转义符在处理的时候不考虑上下文,因此可能有不正确的转换,所以不太建议使用。
   Ø Body as a Document:从不同类型的文件中提取文本,注意这个选项会影响性能,也不太建议使用。
   Ø 信息头:响应报文的信息头(英文Response Headers,中文翻译有误)。
   Ø Request Headers:请求报文的信息头。
   Ø URL:请求的URL。
   Ø 响应代码:响应的状态码,比如200、404、403等。
   Ø 响应信息:响应短语。


  • 引用名称。正则表达式提取器获取到数据存储的变量名。比如:token,将提取到的结果存入到参数为token的变量中,通过${token}获得其值。
  • 正则表达式:使用的正则表达式。正则表达式的基本使用方法可参考官方文档,在本书中不做更详细地介绍。我在工作中用的做多的是(.*?)。
  • 模板(Template):正则表达式的提取模式。如果正则表达式有n个提取结果,则结果模板为12...n,表示把解析到的第几个值赋给变量。
  • 匹配数字(Match No):正则表达式匹配数据的结果可以看作是一个数组,表示如何取值。

   Ø 0:表示随机(默认值);
   Ø负数:表示提取所有结果,它们将被命名为<变量名>_N(其中N从1到结果数);

   Ø N:表示提取第N个结果。如果此N大于匹配数量,则不返回任何内容。将使用默认值。

  • 缺省值:匹配失败时候的默认值;通常用于后续的调试,比如:Null等。

结合第3.2-1节和第4.2节,可以看到,如果正则表达式中参数仅m个参数(m为大于1的整数),引用名称为var。

  • var:提取到的字符串,如果匹配的个数多于一次,这里取默认值。
  • var _n:第n次匹配到的字符串(n为大于1的整数)。如果总共就匹配到一个,没有这个变量。
  • var_n_g:第n次匹配到的字符串个数。
  • var_n_g0:包含var _n(或var)正则表达式的字符串,其中的匹配部分用匹配到的字符串替换。
  • var_n_ g1:匹配到的字符串。
  • var_matchNr:匹配到的个数。
  • var_n_ g1:匹配到的第一个字符串。
  • var_n_ g2:匹配到的第一个字符串。
  • ......。
  • var_n_ gm:匹配到的第m个字符串。


我们可以通过{var}、{var _n}、{var_n_g}、{var_n_g0}、{var_n_g1}、hellip;. 、{var_n_gm}、${name_matchNr}来获得这些值。


2 边界提取器


边界提取器,由左右边界来得到所需要的内容。通过右键点击菜单,选择“添加->后置处理器->正则表达式提取器”而获得。其界面如图34所示。


image.png

图34 边界提取器


  • Apply to:同正则表达式提取器中对应的字段。
  • 要检查的响应字段同正则表达式提取器的字段。
  • 引用名称。边界提取器获取到数据存储的变量名。
  • 左边界:要提取字符串的左边的字符串。
  • 右边界:要提取字符串的右边的字符串。
  • 匹配数字:同正则表达式匹配数字。
  • 缺省值:同正则表达式缺省值。


其参数的表示方法与正则表达式提取器也是相似的。如果边界提取器来提取的,均可以用正则表达式提取器来获取,反之则不行。


image.png

点击查看原视频链接

目录
相关文章
|
Java 测试技术 API
通过案例带你轻松玩转JMeter连载(49)
通过案例带你轻松玩转JMeter连载(49)
250 1
通过案例带你轻松玩转JMeter连载(49)
|
存储 Linux
通过案例带你轻松玩转JMeter连载(60)
通过案例带你轻松玩转JMeter连载(60)
179 0
通过案例带你轻松玩转JMeter连载(60)
|
算法
通过案例带你轻松玩转JMeter连载(59)
通过案例带你轻松玩转JMeter连载(59)
232 0
通过案例带你轻松玩转JMeter连载(59)
|
XML JavaScript Java
通过案例带你轻松玩转JMeter连载(58)
通过案例带你轻松玩转JMeter连载(58)
128 0
通过案例带你轻松玩转JMeter连载(58)
通过案例带你轻松玩转JMeter连载(57)
通过案例带你轻松玩转JMeter连载(57)
128 0
通过案例带你轻松玩转JMeter连载(57)
|
存储 索引
通过案例带你轻松玩转JMeter连载(56)
通过案例带你轻松玩转JMeter连载(56)
117 0
通过案例带你轻松玩转JMeter连载(56)
|
存储 Prometheus 监控
通过案例带你轻松玩转JMeter连载(55)
通过案例带你轻松玩转JMeter连载(55)
165 0
通过案例带你轻松玩转JMeter连载(55)
|
存储 监控 数据可视化
通过案例带你轻松玩转JMeter连载(54)
通过案例带你轻松玩转JMeter连载(54)
157 0
通过案例带你轻松玩转JMeter连载(54)
|
存储 Prometheus 监控
通过案例带你轻松玩转JMeter连载(53)
通过案例带你轻松玩转JMeter连载(53)
137 0
通过案例带你轻松玩转JMeter连载(53)
|
JSON 监控 数据可视化
通过案例带你轻松玩转JMeter连载(52)
通过案例带你轻松玩转JMeter连载(52)
199 0
通过案例带你轻松玩转JMeter连载(52)