---
url: https://docs.ogmabox.com/zh-Hant/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)
