Apidog Docs
🇨🇳 繁體中文
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇨🇳 繁體中文
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇨🇳 繁體中文
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
Learning Center
HomeSupport CenterAPI ReferencesDownloadChangelog
Learning Center
HomeSupport CenterAPI ReferencesDownloadChangelog
  1. 自動化測試
  • Back to home
  • 支援中心
  • Apidog 支援中心
  • 匯入/匯出
    • 如何將 API 資料匯入 Apidog?
    • 如何在 Apidog 中匯入 cURL?
    • 如何將 Postman 環境遷移到 Apidog?
    • 如何在匯入 Swagger/OpenAPI 時自動分組端點?
  • 傳送請求
    • Apidog 支援 Socket.IO 嗎?
    • 為什麼參數值中的「+」會被解碼為空格?
    • 如何在 Apidog 中傳送請求?
    • 如何在 Apidog 中傳送 GraphQL 請求?
    • 如何在 Apidog 中傳送 gRPC 請求?
    • 如何在 Apidog 中傳送 SOAP/WebService 請求?
    • 如何在 Apidog 中傳送 WebSocket 請求?
    • Apidog 是否支援 WebSocket API 中的預先請求/測試腳本與斷言?
    • 如何在 Apidog 中傳送 SSE 請求?
    • 如何在資料夾層級新增預設標頭?
    • Apidog 是否支援 gRPC API 中的預請求/測試腳本與斷言?
    • ELANREFUSED.DNS 解析器錯誤
    • 為什麼我在傳送請求時會收到「socket hang up」錯誤?
    • 修復請求錯誤
      • 修正 read ECONNRESET 錯誤
      • 修正 ECONNREFUSED 錯誤
      • 修正 ETIMEDOUT 錯誤
      • 修復 ENOTFOUND: Couldn't resolve host 錯誤
      • 修正 ENOTFOUND: getaddrinfo ENOTFOUND www 錯誤
      • 修復 connect EHOSTUNREACH 錯誤
  • 設計 API
    • 如何在路徑中使用變數?
    • 我可以使用回應元件作為預設回應嗎?
    • 如何查看誰修改過端點?
    • 如何在 Apidog 中批次刪除端點資料夾?
    • 如何批次新增/移除端點路徑的前綴?
    • 如何在 Schema Editor 中移動屬性的層級?
    • 如果某個字串屬性有多個列舉值,並且會用於各種位置,如何在整個文件中一致地引用此 enum?
    • 如何取得 Apidog 資源資料夾 ID?
    • 如何取得 Apidog 的資源資料夾 ID?
    • 如何在 URL 路徑中使用變數?
    • 如果端點、文件或測試情境不小心被刪除了,我該怎麼辦?
    • Apidog 是否支援自訂端點的請求程式碼?
    • 將 Swagger/OpenAPI 匯入 Apidog 時,如何自動分組端點?
    • 如何在模擬回應中產生不重複的陣列資料?
    • 為什麼路徑不支援輸入「#」?
  • 偵錯 API
    • Apidog 如何與第三方金鑰管理系統整合?
    • 為什麼相同的請求在其他工具(例如 Postman)中可以正常運作,但在 Apidog 中卻不行?
    • 如何在 Apidog 中從資料庫取得變數值?
    • 如何將環境從其他工具遷移到 Apidog?
    • 如何在 Apidog 中使用腳本進行斷言?
    • JSONPath 只能擷取陣列。如何在 Apidog 中從陣列內擷取單一元素?
    • 當不同環境有不同的資料庫帳號憑證時,如何在 Apidog 中設定資料庫操作?
    • 如何在自訂腳本中取得服務基礎 URL?
    • 當 API 回應過大時,為什麼 Apidog 會回報超過 Node.js 字串長度上限的錯誤?
    • 控制台列印的大小限制是多少?為什麼列印大型檔案時會出現錯誤?
    • 如何解決 Windows 上的 DB2 資料庫連線錯誤?
    • 為什麼我在 Apidog 中連線到 Oracle 資料庫時會出現 NJS-045 錯誤?
    • 如何在 Apidog 自訂腳本中產生動態值?
    • 為什麼用戶端請求相同端點時成功,但在網頁端除錯時卻發生「無法請求地址」錯誤?
    • 為什麼當回應過大時 Apidog 會回報錯誤?
    • 如何使用 Apidog 錄製端點?
    • 定義端點回應時,是否允許端點沒有回應內容?
    • 如何在自訂腳本中取得服務 baseURL?
    • 如何在 Apidog 中查看原始封包?
    • 為什麼我在發送請求時會看到「Invalid URI xxx」錯誤?
    • 如何在 Apidog 腳本中發出非同步請求?
    • 為什麼我在傳送請求時會看到「Couldn't resolve host」訊息?
    • 主控台列印大小限制是多少?為什麼列印大型檔案時會出現錯誤?
    • 如何在端點請求中上傳檔案?
    • 如果 Apidog 當機或未顯示回應資料該怎麼辦?
    • Apidog 用於 OAuth2.0 的官方重新導向 URI
  • Mock API 資料
    • 如何自動模擬 API?
    • Apidog 模擬可以做什麼?
    • 如何在 Apidog 中模擬固定的 API 資料?
    • 如何在 Apidog 中模擬條件式資料?
    • 如何在 Apidog 中啟用雲端模擬?
    • 如何在 Apidog 中啟用自架模擬?
    • Apidog 支援模擬 WebSocket API 嗎?
    • 為什麼瀏覽器在請求模擬端點時沒有回傳內容?
  • 自動化測試
    • 為什麼測試情境在我的本機用戶端執行時沒有問題,但在 Apidog CLI 或 runner 中執行時會發生錯誤?
    • 如何在 Apidog 中建立測試情境?
    • 如何在測試步驟之間傳遞資料?
    • 為什麼我無法成功引用前置步驟資料?
    • 如何在 Apidog 中使用 foreach 迴圈?
    • 從端點/端點案例同步資料有什麼差異?
    • 如何在 Apidog 中使用測試資料?
    • 如何在 Apidog 的腳本中擷取測試資料?
    • 如何在 Apidog 中批次執行測試情境?
    • 如何在 Apidog 中排程測試任務?
    • 如何在 Apidog 中執行效能測試?
    • 如何在效能測試中查看實際的請求與回應?
    • 如何在 Apidog 中匯出效能測試報告?
    • 如何使用資料庫查詢結果作為循環 API 請求的參數?
    • 在 CI/CD 期間於 ApiDog 中擷取並驗證 Stripe Webhook
    • 如何解決「Error: unable to verify the first certificate on runner」錯誤?
    • General Runner Docker 容器「Not Found」錯誤。
    • 如何在 Apidog Web 版中設定 General Runner 的伺服器主機?
    • 為什麼排程測試情境最後顯示 0 個請求?
    • 如果在 Runner 或 CLI 中找不到檔案上傳參數,我該怎麼辦?
    • 如何使用 Runner 執行包含上傳檔案步驟的測試場景?
    • 如何解決「Error: unable to verify the first certificate on runner」錯誤?
    • 當 Runner 發生問題時,如何存取並搜尋 Runner 日誌以識別問題?
    • 如果端點參數是上傳檔案,且在 Runner 或 CLI 中找不到,該怎麼辦?
    • 為什麼當 API 使用案例變更時,測試步驟不會自動同步?
    • 為什麼在 Markdown 文件中使用多個美元符號會導致部分內容無法正確顯示?
    • 自架 Runner 執行任務後,是否會在伺服器上產生測試報告?
    • 我可以為測試情境中的請求新增統一的前置/後置處理器嗎?
    • 如何在單次自動化測試執行期間保持動態值一致?
  • 發布 API 文件
    • 如何在已發布的文件中隱藏所有 Apidog 標誌?
    • 當 API 規格更新時,API 文件會變更嗎?
    • 如何在 Apidog 中將 API 分享給協作者?
    • 如何自訂 Apidog 文件的網域?
    • 如何在 Apidog 中建立多版本文件?
    • Apidog 中 Publish Docs Sites 的分享範圍
    • Apidog 中 Share Doc 清單的分享範圍
    • 為什麼已發布的 Share Docs 沒有顯示 hostname?
    • 文件使用者如何在共享文件中修改 Base URL?
    • 我可以複製已發布的 Apidog 文件,以便在自己的專案中使用嗎?
    • 如何在 Apidog 線上文件中共用標頭(例如 Token)?
    • 為什麼我的團隊成員找不到已發布的文件?
    • 如何修復自訂網域上的 SSL 憑證過期或 Cloudflare 526 錯誤?
    • 自訂 SMTP 設定成功,但允許清單使用者未收到 OTP 電子郵件
  • Markdown
    • 如何使用卡片連結到 Apidog 內的各種頁面或端點?
    • 為什麼在 Markdown 文件中使用多個 $ 符號時,部分內容無法正確顯示?
    • 如何在 Apidog Markdown 中使用透明背景圖片?
    • 如何設定 Markdown 表格的欄寬?
    • 如何將內部 API、文件、資料結構描述或資料夾插入 Markdown 文件?
    • 如何在 Apidog 卡片元件中新增專案內文件或端點的連結?
  • 分支
    • 如何存取 sprint 分支?
  • 管理
    • 如何靜默安裝 Apidog 用戶端?
    • 為什麼我明明有管理員存取權,卻看到「No Permission」錯誤?
    • 如何查看 Runner 版本號?
    • Apidog 支援 win7 嗎?
    • 為什麼 Apidog 安裝後會顯示錯誤「Cannot locate program entry point DiscardVirtualMemory in dynamic link library KERNEL32.dll」?
    • 訂閱變更與退款
    • Web 請求可正常運作,但 App 出現「read ECONNRESET」——為什麼?
    • 為什麼 Windows 系統更新後我無法開啟 Apidog?
    • 為什麼 Apidog 在 Windows 系統更新後無法開啟
  • 帳單
    • 我可以在 Apidog 中為我的團隊設定獨立的帳務帳戶嗎?
    • Apidog 上的團隊存取與帳單問題
    • 受邀團隊成員無法存取 Apidog。
    • 將個人付費團隊轉移至組織
  • 私有化部署
    • Apidog 自託管(企業)版本中的使用者與存取管理
  • Web 與用戶端
    • 下載與安裝 Linux 桌面版
  1. 自動化測試

如何在測試步驟之間傳遞資料?

在自動化測試情境中,在多個請求之間傳遞資料非常常見。典型案例包括:
請求 1 是登入請求,會回傳 token;請求 2 使用此 token 來請求其他資料。
請求 1 回傳一個 ID;請求 2 根據此 ID 執行操作。
請求 1 回傳一個清單;請求 2 使用此清單中的資料。
針對這類情境,Apidog 提供兩種不同的解決方案,用於處理請求之間的資料傳遞。你可以根據手邊的具體問題選擇合適的解決方案。
擷取前置步驟資料:此功能可讓你在後續請求中直接使用前面請求的資料。
優點是簡單,不需要引入額外變數。
不過,當資料需要被多次引用時,可能會稍微繁瑣。
擷取前置步驟資料功能「只能」在「Tests」模組中使用,不能在「APIs」模組中使用。
使用變數:在前一個請求的前置處理器中新增「Extract Variables」,將所需資料儲存在變數中,然後在後續請求中呼叫此變數。
優點是在多次引用資料時很方便,但對於單次引用而言可能稍微複雜。
變數可同時在「Tests」模組和「APIs」模組中使用。

擷取前置步驟資料#

我們來考慮一個情境:請求 1 是登入請求,會回傳 token,而請求 2 使用此 token 來請求額外資料。
1
將登入請求(請求 1)新增到測試情境中。
2
將查詢請求(請求 2)新增到測試情境中。
3
請求 2 的查詢參數需要包含請求 1 回傳的 token。點擊請求 2 查詢參數中 token 欄位的「魔法棒」圖示 🪄,並選擇「擷取前置步驟資料」。
4
選擇請求 1 進行資料擷取,選擇回應主體,並使用 JSONPath 擷取請求 1 回傳的 token,例如 $.token。
5
點擊插入,你會看到 {{$.2.response.body.token}} 被插入為查詢參數。
6
點擊測試情境中的「Run」按鈕,即可成功將資料從請求 1 傳遞到請求 2。
「擷取前置步驟資料」功能「僅」可在「Tests」模組中使用,不能在「APIs」模組中使用。
使用「擷取前置步驟資料」時,只有在整個測試情境一起執行時才能取得值;執行單一步驟時無法存取。

使用變數語法引用前置步驟資料#

以前文中的 {{$.2.response.body.token}} 為例:
'2' 代表步驟 ID,可在每個測試步驟中找到。
'response.body' 表示前置步驟資料的位置。這可以包含請求的標頭、主體,或回應的標頭或主體等資料。具體內容請見下方。
'token' 代表主體中下一層的 'token' 資料。你可以使用 JSONPath 語法擷取所需資料。
前置步驟資料可用於請求的各個部分,例如請求參數、標頭、驗證等。你也可以將資料直接插入請求主體,如下所示。
需要注意的是,如果你需要在腳本中使用前置步驟資料,不能直接使用 {{variable}} 語法引用變數。相反地,你應使用 pm.variables.get 來引用前置步驟資料。例如:

語法參考#

類別 功能 語法範例
請求URL{{$.<step id>.request.url}}
路徑參數{{$.<step id>.request.pathParam.<field name>}}
查詢{{$.<step id>.request.query.<field name>}}
標頭{{$.<step id>.request.header.<field name>}}
主體(form){{$.<step id>.request.body.<field name>}}
主體(json){{$.<step id>.request.body.<field path>}}
回應主體{{$.<step id>.response.body.<field path>}}
標頭{{$.<step id>.response.header.<field name>}}
Cookie{{$.<step id>.response.cookie.<field name>}}
迴圈元素(ForEach 迴圈中的陣列元素){{$.<loop step id>.element.<field path>}}
索引{{$.<loop step id>.index}}

使用變數傳遞資料#

我們來考慮一個情境:請求 1 是登入請求,會回傳 token,而請求 2 使用此 token 來請求額外資料。
1
將登入請求(請求 1)新增到測試情境中。
2
在請求 1 的後置處理器中,新增一個「Extract Variable」動作,將 $.token 擷取為 {{token}}。
了解更多關於 Extract variable 的資訊。
3
將查詢請求(請求 2)新增到測試情境中。
4
在請求 2 的查詢參數中引用變數 {{token}}。
5
點擊測試情境中的「Run」按鈕,即可成功將資料從請求 1 傳遞到請求 2。
Modified at 2026-06-11 10:26:02
Previous
如何在 Apidog 中建立測試情境?
Next
為什麼我無法成功引用前置步驟資料?
Built with