JMeter-Post Processors

  • 翻译来自Post Processors

18.8 Post-Processors(后置处理器)


顾名思义,后置处理器是在取样器之后使用的,并且应用于同一范围内的所有采样器,因此如果需要后置处理器仅应用于特定的采样器,需要将其添加为采样器的子元素。

注意,除非另有说明,后置处理器仅应用于父样本,不应用于子样本。对于JSR223和BeanShell处理器,脚本可以使用prev.getSubResults()方法检索子样本,该方法返回一个SampleResults数组。如果没有检索到子样本,则数组将为空。

后置处理器在断言之前运行,因此它们无权访问任何断言结果,样本状态也不会反映任何断言的结果。如果需要访问断言结果,请尝试使用Listener(监听器)。还要注意,在运行所有断言之后,变量JMeterThread.last_sample_ok设置为“true”或“false”。

Regular Expression Extractor(正则表达式提取器)


该提取器允许用户使用正则表达式从服务器响应中提取值,并且在其作用域中的每个sample请求之后执行。总的来说,应用正则表达式,提取请求的值,生成模板字符串,并将结果存储到给定的变量名中。


正则表达式提取器控制面板
  • Parameters
Attribute Description Required
Name 元件名称 NO
Apply to: 见附件1 YES
Field to check 见附件2 YES
Name of created variable 存储提取结果的JMeter变量名。还要注意,每个组都存储为[refname]_g#,其中[refname]表示变量名,#是组号。 YES
Regular Expression The regular expression used to parse the response data. This must contain at least one set of parentheses "()" to capture a portion of the string, unless using the group . Do not enclose the expression in / / - unless of course you want to match these characters as well. YES
Template The template used to create a string from the matches found. This is an arbitrary string with special elements to refer to groups within the regular expression. The syntax to refer to a group is: '' to refer to group 1, '' to refer to group 2, etc. refers to whatever the entire expression matches. YES
Match No. (0 for Random) 匹配项数量。正则表达式可以多次匹配。使用值0表示随机选择匹配项。正数N表示选择第N个匹配项。负数与ForEach Controller一起使用。 YES
Default Value 如果正则表达式没有匹配成功,则变量将设置为默认值。默认值主要是为了防止请求使用错误的变量。 NO(但推荐使用)
Use empty default value 如果在控制面板上选中复选框并且默认值为空,那么JMeter将把变量设置为空字符串,而不是不设置它。 NO

如果Match No.设置为非负数,并且匹配到数据,则变量设置如下:

  • refName-模板的值
  • refName_gn,其中n=0,1,2-匹配的组
  • refName_g-正则表达式中的组数(不包括0)
    如果没有匹配发生,并且refName变量存在,则refName将设置为默认值。此外,还将删除以下变量:
    refName_g0
    refName_g1
    refName_g
    如果Match No.设置为负数,则处理采样器数据中所有可能的匹配。变量设置如下:
  • refName_matchNr-找到的匹配数,可以是0
  • refName_n,其中n=1、2、3等-模板生成的字符串
  • refName_n_gm, where m=0, 1, 2-匹配的n个组
  • refName-始终设为默认值
  • refName_gn-不设置
    请注意,在这种情况下,refName_gn变量始终设置为默认值,并且未设置关联的组变量。
    更多示例参考Response Assertion,information on JMeter regular expressions。

附件1


它用于可以生成子样本的采样器,例如带有嵌入式资源的HTTP采样器、邮件读取器或事务控制器生成的样本。

  • Main sample only-仅适用于父样本
  • Sub-samples only-仅适用于子样本
  • Main sample and sub-samples-父样本和子样本均适用
  • JMeter Variable Name to use-用于接收提取器内容的变量名
    匹配将依次应用于所有符合条件的样本。例如,如果有一个主样本和3个子样本,则总共有4个匹配项。对于Match No.=3,Sub-samples only模式,提取器将匹配第三个子样本。对于Match No.=3,Main sample and sub-samples,提取器将依次匹配主样本、第一个子样本、第二个子样本。如果Match No.为0或负值,则将处理所有符合条件的样本。对于Match No.>0,一旦找到足够的匹配项,匹配将停止。

附件2


提取器提取的内容可以来自以下:

  • Body-响应的主体。
  • Body(unscaped)-响应的主体,替换了所有Html转义字符。请注意,Html转义是在不考虑上下文的情况下处理的,因此可能会有一些不正确的替换。
    请注意,此选项会对性能产生很大影响,因此只有在绝对必要时才使用它。
  • Body as a Document-通过Apache Tika从各种类型的文档中提取文本(参见查看View Results Tree)。
    注意,Body作为文档选项可能会影响性能。
  • Request Headers-一般只适用于HTTP请求的样本
  • Response Headers-一般只适用于HTTP请求的样本
  • URL
  • Response Code
  • Response Message

你可能感兴趣的:(JMeter-Post Processors)