JMeter 中的处理器:前置处理器与后置处理器

处理器用于修改其作用域内的采样器。

处理器分为 2 种类型

  1. 前置处理器
  2. 后置处理器

前置处理器

前置处理器在进行采样器请求**之前**执行某些操作。

考虑一个简单的例子:假设您希望 JMeter “爬取”被测网站,**解析**链接(检查页面上的所有链接)并**返回** HTML。您需要在创建 HTTP 请求之前,向您的控制器添加一些操作,例如“HTML 链接解析器”。

Pre-Processor

后置处理器

后置处理器在进行采样器请求**之后**执行某些操作。

考虑一个简单的例子:JMeter 向被测 Web 服务器(如 www.google.com)发送 HTTP 请求并获取响应。如果您希望如果服务器响应错误,JMeter 就停止测试。您可以使用后置处理器完成上述任务,如下所示:

Post-Processor

后置处理器示例

本教程将逐步向您展示如何在 JMeter 中使用后置处理器。让我们从简单的测试脚本开始。

  1. JMeter 向被测 Web 服务器 www.google.com 发送 HTTP 请求。
  2. JMeter 从 Google 服务器获取响应。
  3. 如果服务器响应**错误**,JMeter 将**停止**测试。
  4. 如果服务器响应**正常**(无错误),JMeter 将**继续**测试。

以下是本示例的**路线图**

Post Processor Example

前置条件

我们**重复使用**文章 JMeter 性能测试中的步骤 1 和步骤 2。

步骤 1) 添加线程组

右键单击测试计划并添加一个新的线程组:**添加** -> **线程 (用户)** -> **线程组**

但在线程组控制面板中,按如下方式输入线程属性

Add Thread Group

此设置让 JMeter 向 http://www.google.com 发送 **10** 次用户请求。

步骤 2) 添加 JMeter 元素

  • 添加 HTTP 请求默认值
  • 添加 HTTP 请求

我们仍然让 JMeter 向 Google 服务器发送请求 http://www.google.com

步骤 3) 添加后置处理器元素

右键单击**线程组** -> **添加** -> **后置处理器** -> **结果状态动作处理器**

**结果状态动作处理器**允许用户在用户请求失败时停止线程或整个测试。

Add Post-Processor Element

在“结果状态动作处理”面板中,选择**立即停止测试**。如果 JMeter 从服务器响应中获取错误,此选择将停止测试。

Add Post-Processor Element

步骤 4) 配置 HTTP 请求

打开 HTTP 请求面板。在“路径”字段中输入 **“abc”**。

Config the HTTP Request

当您在路径中输入 **“abc”** 时,JMeter 将向 Google 服务器创建 URL 请求:http://www.google.com/abc。此 URL 不存在于 Google 服务器上。这是一个**错误的** URL 请求,因此 Google 服务器将返回错误。

步骤 5) 添加查看结果树

右键单击**线程组** -> **添加** -> **监听器** -> **查看结果树**

Add View Result Tree

步骤 6) 运行测试

选择“查看结果树”,然后按菜单栏上的“运行”按钮。您将看到来自 Google 服务器的**错误**响应,并且测试将**不**完成 100 个线程就停止。

Run The Test

现在返回到步骤 4,打开 HTTP 请求面板,在面板中输入“**calendar**”。这使得 JMeter 创建 URL 请求 https://calendar.google.com/calendar/u/0/r 到 Google 服务器。这是一个**正确的** URL 请求,因此 Google 服务器将返回 OK(无错误)。

Run The Test

选择“查看结果树”,然后按菜单栏上的“运行”按钮。您将看到来自 Google 服务器的**正常**响应,并且测试将继续,直到所有 100 个线程完成。

Run The Test

故障排除

如果您在运行上述场景时遇到问题,请执行以下操作

  1. 检查您是否通过代理连接到互联网。如果是,请移除代理。
  2. 打开一个新的 Jmeter 实例
  3. 在 Jmeter 中打开 ProcessorTestPlan.jmx
  4. 双击线程组 -> 查看结果树
  5. 运行测试