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

動態值

在上章的「使用者生命週期」範例中,我們簡要提到了使用 {{$randomUserName}} 來驗證使用者註冊。這個簡單的技巧實際上是一個強大功能的一部分,稱為 動態值。
當您在步驟之間傳遞資料時,您使用的是 真實 資料。但通常,您需要 虛假 但逼真的資料來使您的測試穩健且可重複。
為了解決這個問題,我們使用 動態值。

什麼是動態值?#

動態值是 Apidog 內建的特殊變數(類似於 "Faker" 函式庫),每次發送請求時都會生成隨機資料。
它們遵循語法 {{$variableName}}。

為什麼使用它們?#

1.
避免衝突:永遠不會得到「重複鍵」錯誤。
2.
逼真:每次都用不同的名稱、電子郵件和號碼進行測試。
3.
方便:無需手動輸入 "test user 1"、"test user 2"。

常見動態變數#

以下是日常測試中最有用的幾個:

識別碼#

{{$guid}}:唯一的 UUID(例如 d4f5-a1b2-...)。非常適合 Request ID 或 Trace ID。
{{$timestamp}}:當前 Unix 時間戳(例如 1678886472)。

個人資料#

{{$randomUserName}}:隨機使用者名稱(例如 brave_lion)。
{{$randomEmail}}:隨機電子郵件(例如 example@xyz.com)。
{{$randomPhoneNumber}}:隨機電話號碼。

數字與字串#

{{$randomInt}}:0 到 1000 之間的隨機整數。
{{$randomString}}:隨機文字字串。
提示:Apidog 提供了數百種這樣的變數。只需在任何值欄位中輸入 {{$,自動完成列表就會出現。或者點擊 Magic Wand(魔術棒)圖標來瀏覽完整列表。
Dynamic Value Selector

真實案例:隨機使用者註冊#

讓我們修復我們的「使用者註冊」測試,使其永遠不會因重複電子郵件錯誤而失敗。
舊 Body(靜態):
{
  "username": "testuser",
  "email": "test@example.com",
  "password": "Password123"
}
新 Body(動態):
{
  "username": "{{$randomUserName}}",
  "email": "{{$randomUserName}}@example.com",
  "password": "Password123"
}
現在,每次運行此測試時,Apidog 都會生成一個新使用者:
運行 1:"username": "blue_sky"
運行 2:"username": "fast_tiger"

在參數中使用動態值#

您也可以在查詢參數中使用它們。
GET /items?cacheBuster={{$timestamp}}
這確保伺服器永遠不會返回快取的回應,因為 URL 始終是唯一的。

關鍵重點#

使用 動態值 防止資料衝突和「重複鍵」錯誤。
掌握常見變數如 {{$timestamp}}、{{$guid}} 和 {{$randomUserName}}。
應用動態資料使您的測試穩健且可重複,無需手動清理。

下一步#

既然我們有在請求之間流動的資料(整合)和每次運行的唯一資料(動態值),我們需要確保 API 實際上返回 正確 的結果。
在下一章中,我們將深入探討 斷言和驗證。
繼續閱讀 → 斷言和驗證
Modified at 2025-12-29 09:35:19
Previous
整合測試與資料傳遞
Next
斷言與驗證
Built with