API Academy
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
HomePetstore APIExplore more APIs
HomePetstore APIExplore more APIs
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
  1. Testing APIs
  • 歡迎
  • 目錄
  • API 學院
    • Get Started
      • 什麼是 API?
      • API 如何運作?
      • 如何呼叫 API?
      • 如何閱讀 API 文件?
      • 章節總結
    • API Fundamentals
      • API 基礎知識:概覽
      • 方法與路徑
      • 參數
      • 請求 Body
      • 回應
      • API 規格與 OAS
      • 章節總結
    • Working with APIs
      • 使用 API:概覽
      • 根據規格發送請求
      • 環境與變數
      • 串聯多個端點
      • 處理 Auth
      • 處理 API 簽名
      • 腳本介紹
      • 章節總結
    • Mocking APIs
      • Mocking API:概覽
      • Smart Mock
      • Mock 預期結果
      • Cloud Mock
      • Mock 腳本
      • 章節總結
    • Designing APIs
      • 設計 API:概覽
      • API 設計介紹
      • 建立您的第一個 API 專案
      • 分析需求並規劃您的 API
      • 設計資料模型
      • 設計端點
      • 使用組件與可重用性
      • 設定與 Auth
      • API 設計指南
      • 章節總結
    • Developing APIs
      • 開發 API:概覽
      • 設定:安裝您的 AI 程式碼助手
      • 快速入門:30 分鐘內從規格到運行的 API
      • 了解生成的程式碼
      • 使用 Apidog 測試您的 API
      • 部署:將您的 API 上線
      • 章節總結
    • Testing APIs
      • 測試 API:概覽
      • 快速入門:您的第一個測試場景
      • 整合測試與資料傳遞
      • 動態值
      • 斷言與驗證
      • 流程控制:If, For, ForEach
      • 資料驅動測試
      • 性能測試
      • 測試報告與分析
      • CI/CD 整合
      • 排程任務與自動化
      • 進階測試策略
      • 章節總結
    • API Documentations
      • API 文件:概覽
      • 發布您的第一個 API 文件
      • 自訂文件外觀
      • 給消費者的互動功能
      • 進階發布設定
      • 管理 API 版本
      • 章節總結
    • Advanced API Technologies
      • 進階 API 技術:概覽
      • GraphQL
      • gRPC
      • WebSocket
      • Socket.IO
      • Server-Sent Events
      • SOAP
      • 章節總結
    • API Lifecycle
      • API 生命周期:概覽
      • API 生命周期的階段
      • API 治理
      • API 安全最佳實踐
      • 監控與分析
      • API 版本策略
      • API 的未來
      • 章節總結
    • API Security
      • API 安全性:概覽
      • API 安全性基礎知識
      • 身份驗證 vs. 授權
      • 了解 OAuth 2.0 和 OpenID Connect
      • JSON Web Tokens (JWT)
      • OWASP API 安全 Top 10
      • 加密與 HTTPS
      • 章節總結
    • API Tools
      • API 工具:概覽
      • API 工具的演變
      • API Clients
      • 命令列工具 (cURL, HTTPie)
      • API 設計和文件工具
      • API Mocking 工具
      • API 測試工具
      • 一體化 API 平台
      • 章節總結
    • API Gateway
      • API Gateway:概覽
      • 什麼是 API Gateway?
      • API Gateway 的關鍵功能
      • API Gateway vs 負載平衡器 vs 服務網格
      • 流行 API Gateway 解決方案
      • BFF (Backend for Frontend) 模式
      • 章節總結
HomePetstore APIExplore more APIs
HomePetstore APIExplore more APIs
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
  1. Testing APIs

資料驅動測試

使用單一資料集(如 "user1")進行測試是一個好的開始,但這並不能證明您的 API 是穩健的。如果使用者名稱有空格會發生什麼?如果是 100 個字元長呢?如果電子郵件無效呢?
資料驅動測試 (Data-Driven Testing, DDT) 允許您多次運行 同一個 測試場景,每次迭代使用來自外部檔案(CSV 或 JSON)的不同資料集。

什麼是資料驅動測試?#

您不再使用硬編碼的值如 "username": "testuser",而是使用變數如 "username": "{{username}}"。然後,您將一張資料表輸入到測試執行器中。
為什麼使用它?
1.
覆蓋率:在幾秒鐘內測試 100 個邊緣案例。
2.
效率:編寫一次測試邏輯,無限次運行。
3.
分離:將您的測試邏輯與測試資料分開。

步驟 1:準備您的資料#

Apidog 支援 CSV 和 JSON 格式。CSV 通常最容易在 Excel 或 Google Sheets 中管理。

範例 CSV (users.csv)#

建立一個檔案,其標頭匹配您的變數名稱:
username,email,password,expected_status
valid_user,valid@email.com,Pass123!,201
short_pass,valid2@email.com,123,400
bad_email,notanapemail,Pass123!,400
long_user,user_with_very_long_name_check_limits@email.com,Pass123!,201
注意:標頭(username, email)將自動成為 Apidog 中的變數名稱。

步驟 2:配置測試場景#

1.
打開您的測試場景(例如「使用者註冊」)。
2.
在您的 API 請求 (POST /users) 中,將硬編碼的值替換為變數:
Body:
{
  "username": "{{username}}",
  "email": "{{email}}",
  "password": "{{password}}"
}
3.
更新斷言:由於預期結果會改變(有些通過,有些失敗),請讓您的斷言也是動態的!
Assertion: Response.status.code Equals {{expected_status}}

步驟 3:匯入資料並運行#

現在,讓我們將資料檔案連接到測試執行器。
1.
點擊您的場景的 Run 按鈕。
2.
在運行設定中,找到 Test Data 部分。
3.
點擊 Import 並選擇您的 users.csv 檔案。
4.
預覽:Apidog 將向您展示已載入資料行的預覽。
5.
運行:點擊 Run。
Importing Test Data
查看詳情:資料驅動測試

步驟 4:分析結果#

Apidog 將為 CSV 檔案中的 每一行 執行一次場景。在我們的範例中,迭代 1 使用 valid_user 並期望 201,這應該通過。迭代 2 使用 short_pass,這是無效的。由於我們配置了預期狀態為 400,測試通過,因為 API 正確拒絕了壞資料。
報告按迭代對這些進行分組,允許您確切地看到哪一行資料導致了失敗。

最佳實踐#

1.
包含預期結果:如範例所示 (expected_status),將您的成功標準放入資料檔案中。這允許一個測試腳本同時處理正面和負面測試。
2.
保持資料小巧:不要上傳 1GB 的 CSV。堅持關鍵的代表性案例。
3.
隨機 vs 順序:Apidog 通常按順序處理行(第 1 行,然後第 2 行)。這是確定性的,也是建議的做法。

關鍵重點#

外部化測試資料以實現可擴展性
使用 CSV/JSON 檔案進行資料驅動
應用資料驅動方法進行批次測試

下一步#

我們已經涵蓋了功能測試、整合邏輯和資料覆蓋。但是您的 API 能擴充嗎?它能同時處理 1,000 個使用者嗎?
在下一章中,我們將深入探討使用 Apidog 進行 效能測試。
繼續閱讀 → 效能測試
Modified at 2025-12-29 09:35:19
Previous
流程控制:If, For, ForEach
Next
性能測試
Built with