---
url: https://docs.ogmabox.com/zh/app/automate.md
description: 使用 Ogma 自动化运行可重复的请求测试任务。
---

# 自动化 {#automate}

自动化通过受控的载荷变化，多次发送同一个请求模板，让你能够大规模枚举参数、对输入进行模糊测试或测试访问控制。

## 创建会话 {#create-a-session}

1. 在 **HTTP 历史记录**或**重放**中打开请求。
2. 右键单击请求并选择**发送到自动化**，或使用工具栏按钮。
3. 请求将作为会话模板打开。后续所有配置均应用于此模板。

## 载荷位置 {#payload-positions}

载荷位置标记载荷的插入点。Ogma 在每个请求中用载荷值替换各个标记。

* 在请求编辑器中选中文本，点击**标记选中内容**以添加位置标记。
* 点击标记手柄并选择**移除**以删除标记。
* 支持多个位置。其行为取决于攻击模式。

## 攻击模式 {#attack-modes}

| 模式 | 行为 |
|------|----------|
| 狙击 | 一次处理一个位置。依次在每个位置遍历所有载荷。请求总数等于载荷数量乘以位置数量。 |
| 攻城槌 | 同时在所有位置使用相同的载荷值。 |
| 草叉 | 并行遍历多个位置。将列表 A 的第一个载荷与列表 B 的第一个载荷配对，以此类推。最短列表耗尽时停止。 |
| 集束炸弹 | 遍历所有位置的每一种组合。请求数量等于所有列表长度的乘积。请使用较小的列表。 |
| 顺序执行 | 从每个响应提取配置的值，并将其注入下一个请求。开始前请配置提取器、目标位置和迭代次数上限。 |

## 载荷来源 {#payload-sources}

| 来源 | 说明 |
|--------|-------------|
| 字典 | 加载以换行符分隔的文件，或直接粘贴值。 |
| 数字 | 生成数字范围，可配置起始值、结束值和步长。 |
| 空值 | 在配置的迭代次数内，用空字符串替换该位置；不会保留原始标记文本。 |
| 自定义列表 | 直接输入值，无需文件。 |

## 匹配器 {#matchers}

匹配器对符合条件的结果行进行标注。它们不会筛除行，而是为每个匹配器添加一列布尔值。

* 点击 **+ 匹配器**添加匹配器。
* 使用 **AI**以自然语言描述条件，或手动配置。

| 匹配器类型 | 匹配条件 |
|--------------|--------------|
| 状态 | 响应状态码等于或不等于指定值。 |
| 大小 | 响应体长度在指定范围内。 |
| 响应体内容 | 响应体包含指定字符串，或匹配字符串或正则表达式。 |

## 停止条件 {#stop-conditions}

停止条件在匹配器触发时终止运行。

* 使用响应状态或大小、比较运算符和值配置**停止条件**。
* 匹配到结果会暂停运行；已经发出的请求仍可能完成。

当你只需要第一个成功结果（例如有效凭据或绕过检查的结果）时，这很有用。

## 提取器 {#extractors}

提取器从每个响应中提取值，并将其存储在具名列中。

* 使用提取器捕获 CSRF 令牌、会话 ID 或 nonce，用于串联请求。
* 使用 **AI**描述提取目标，或手动配置正文正则匹配、正文文本查找或响应标头提取。
* 提取的值以列的形式显示在结果表中。
* 对于顺序模式，请显式配置用于串联的提取器；将结果发送到另一个会话，不会自动为该会话设置令牌提取。

## 结果表 {#results-table}

每个完成的请求都会生成一行。

| 列 | 说明 |
|--------|-------------|
| # | 请求序号。 |
| 状态 | HTTP 响应状态码。 |
| 大小 | 响应体长度，单位为字节。 |
| 时间 | 往返时间，单位为毫秒。 |
| 载荷 | 此请求使用的载荷值。 |
| 匹配器列 | 每个配置的匹配器对应一列布尔值。 |
| 提取器列 | 每个配置的提取器对应一列提取值。 |

点击任意行，在检查面板中打开完整请求和响应。

## 筛选结果 {#filtering-results}

在结果表上方的**筛选**栏中输入 HTTPQL 表达式，缩小显示的行范围。例如：

```text
result.status.eq:200 AND result.len.gt:500
```

自动化查询使用 `result.*` 命名空间。对于提取列，使用其 `result.extract.<name>` 字段。HTTP 历史记录的 `req.*` 和 `resp.*` 字段不能与自动化结果筛选字段互换使用。

## AI 辅助 {#ai-assist}

**AI**按钮位于匹配器和提取器配置字段旁边。用自然语言描述你想检测或提取的内容，Ogma 会生成配置。保存前请检查结果。

## 将结果发送到其他工具 {#send-a-result-elsewhere}

右键单击任意结果行，可以：

* **发送到重放** - 在重放中打开该具体请求和响应，以便手动跟进。
* **发送到新的自动化会话** - 使用结果行的请求作为新会话的模板。
* **复制为 cURL** - 将请求复制为 curl 命令。

## 相关页面 {#related-pages}

* [重放](./replay.md)
* [环境](./environment.md)
* [导出](./exports.md)
