JMETER(七) 后置处理器

后置处理器
Sampler 用来模拟用户请求,有时候服务器的响应数据在后续请求中需要用到,我们必须要对这些响应数据进行处理,后置处理器即是用来完成这项工作的。比如系统登录成功后我们要获取SessionID,在后面的业务操作中服务器会验证这个SessionID,获取SessionID这个过程可以用后置处理器中的正则表达式提取器来完成。

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

例如,如果我们需要模拟网站上的用户活动,那么为此,我们需要获取与正在测试的站点相关的链接。只需排除通向其他资源的所有链接。最简单的方法是使用正则表达式从页面中提取所有链接。

参数说明:

apply to(应用范围)

  • Main sample and sub-samples: 匹配范围包括当前父取样器并覆盖至子取样器
  • Main sample only: 匹配范围是当前父取样器
  • Sub-samples only: 仅匹配子取样器
  • JMeter Variable Name to use: 支持对Jmeter变量值进行匹配

Field to check:要检查的字段,针对响应数据的不同部分进行匹配,共七个选项

  • Body:响应数据的主体部分

  • Body (unescaped) :针对替换了转义码的Body部分,响应正文,替换了所有 Html 转义代码。请注意,处理 Html 转义时不考虑上下文,因此可能会进行一些不正确的替换(请注意,此选项对性能影响很大,因此仅在绝对必要时才使用它并注意其影响)

  • Body as a Document:返回内容作为一个文档匹配(请注意, Body as a Document 选项会影响性能,因此请确保它适合您的测试)

  • Request Headers:请求头部信息

  • Response Headers:响应头部信息

  • URL:只匹配URL链接

  • Response Code:匹配响应代码,比如返回200代表成功

  • Response Message:匹配响应信息,比如返回成功字样。

  • Name of created variable:创建变量的名称,匹配出来的信息通过次名称进行访问

  • Regular Expression:正则表达式,用于解析响应数据的正则表达式

  • Template:正则表达式可以设置多个模板,语法是:' $1$ ' 表示第一个模板,' $2$ ' 表示第二个模板,等等。$0$表示全文匹配

  • Match No. (0 for Random):匹配数字,在匹配时往往会出现多个值匹配的情况,如果匹配数为0则代表随机匹配值。正数表示匹配哪一个;负数取所有值,可以与For EachController一起使用来遍历

  • Default Value:如果正则表达式不匹配,则引用变量将设置为默认值。这对于调试测试特别有用

  • Use empty default value:使用空默认值

示例:https://www.cnblogs.com/liho/p/14201784.html

2、JSON Extractor

有许多工具和方法可以测试和自动化 API 测试。但是,虽然不同的工具适合不同的需求,但Apache JMeter™对于负载测试的用户来说具有很大的优势。使用JMeter,您可以通过向线程组添加更多用户和循环来轻松地将功能 API 测试转换为性能测试。

添加一个 HTTP Request 并填写请求的数据,返回json数据

现在我们需要解析 JSON 响应,所以我们可以验证我们得到的值。为此,让我们添加 JSON 提取器

Right click on HTTP Request->Add->Post Processors->JSON extractor

参数说明:

Apply to

  • Main sample only: 仅主样本

  • Sub-samples only: 仅子样本

  • Main sample and sub-samples : 主样本和子样本

  • JMeter Variable: 支持对Jmeter变量值进行匹配

  • Names of created variables:变量名称,有多个变量时逗号分隔

  • JSON Path Expressions:用法

  1. $.data.msg,
  2. $.data[0].id
  3. $.data[*].id,获取所有id
  • Match No. (0 for Random): 匹配数字(0代表随机,1代表第一个,-1代表所有)**

  • Compute concatenation var(suffix _ALL): 是否统计所有数据,即将匹配到的所有值保存,名为“变量名_ALL”,使用场景需要获取的值有多个,后面需要对这一组数据进行操作**

  • Default Values:找不到时默认值,一般设置为NOT FOUND,当json提取器要提取两个值(或两个以上)的时候,一定要填写默认值

添加侦听器获取值json值

原文地址:https://www.cnblogs.com/liho/p/15732759.html