第一部分:Postman API 測試與開發到底是為了什麼

Collection 是一份可分享、可執行的請求紀錄。這讓它特別適合三件事:探索不熟悉的 API、用真的跑得起來的範例撰寫文件,以及把一個可重現的案例交給別人自己執行。這三件事都值得做好,也經常被低估。

團隊出錯的地方不在於使用 Collection,而在於以為不必做任何其他改變,Collection 就能變成回歸測試套件。

第二部分:四個問題

每一套 API 測試、在每一種工具裡,最後都會遇上同樣這四個問題。事先知道它們,就已經是這門技術的大半。

Session 會過期

  • Token 在執行到一半時逾時,失敗看起來卻像是產品的 bug。

  • 把憑證從個別請求中移出來,放進環境設定裡。

值會在呼叫之間傳遞

  • 一個建立資源的請求,會回傳下一個呼叫需要的識別碼。

  • 要把它擷取下來,絕對不要寫死,否則整套測試只會成功那麼一次。

順序很重要

  • 覆蓋範圍是一張圖,Collection 卻是一份清單。

  • 前面一個失敗會連鎖擴散,讓整個畫面都是不相干的紅字。

第四個是清理。資料越積越多,唯一性限制開始被觸發,分頁相關的斷言也慢慢失準。用名稱樣式來刪除資料看似安全,直到兩次執行重疊在一起為止。

第三部分:值得寫的斷言

  • 要對回應內容做斷言,不只是看狀態碼。 該有一筆資料的地方卻回傳 200 和一份空清單,這是一個 bug,但只檢查狀態碼的測試會判定它通過。

  • 要斷言失敗有正確地失敗。 去請求一個不存在的資源,檢查狀態碼和錯誤的結構。回傳 200、卻把錯誤包在內容裡的服務很常見。

  • 要跨端點做斷言。 如果一筆資料參照到另一筆,就把它抓回來看。真正有意思的 bug 都藏在兩個呼叫之間。

第四部分:當 Collection 不再夠用

訊號是:你的 pre-request 腳本已經變成一個只有一個人看得懂的小型框架。到了那個階段,這四個問題就成了你自己要維護的基礎設施,而不是工具的責任,這時候就該把回歸測試搬到一個把它們當作產品一部分來處理的地方。TestSprite 以 Auto-Authentication、Dynamic Variables、Dependency Chains 和 Auto-Cleanup 來處理這四件事,詳見 API 測試文件。

Collection 還是要留著。在探索和撰寫文件這兩件事上,它仍然是你手上最好的工具。

第四點五部分:沒有人審查的那些腳本

Collection 裡的 pre-request 腳本和測試腳本值得花點篇幅談,因為真正麻煩的失敗就出在那裡,而它們幾乎從來沒有被審查過。

它們是 JavaScript,會依特定順序執行,會改動共用的環境變數,而且存在一份 diff 起來完全看不出所以然的 JSON 匯出檔裡。改一段 token refresh 的腳本,可能會弄壞四十個請求,而 pull request 上只顯示一行 JSON 有變動。團隊往往是在同一週內有兩個人同時改到同一個 Collection 時,才第一次發現這件事。

如果你的腳本已經到了讓上面那段話聽起來很熟悉的程度,那這份 Collection 就已經變成軟體了。軟體需要程式碼審查、版本控制,還有它自己的測試——當初的目標明明是要測試別的東西,最後卻走到這一步,實在有點奇怪。

第五部分:讓它不需要你也能跑

從儀表板連接程式碼儲存庫,測試就會從你原本就會產生的部署開始執行;或者,你也可以改成在自己的工作流程裡加一個步驟。

終端機

npm install -g @testsprite/testsprite-cli
testsprite setup

如果你不想在本機安裝任何東西,同樣的設定也可以直接在 TestSprite 儀表板裡完成。CLI 其餘的功能都列在 CLI 儲存庫。

第六部分:TestSprite 如何處理這四個問題

這四個問題各自都有名字,而且是由產品來處理,不是丟給你的腳本。Auto-Authentication 讓你把登入流程設定一次,之後每次執行前都會取得新的 token。Dynamic Variables 會從某個回應中擷取值,再注入到下一個請求裡。Dependency Chains 會依據每個測試案例需要什麼、產出什麼,推導出一個安全的執行順序。Auto-Cleanup 則會精準刪除該次執行所建立的資料。

覆蓋範圍是從 API Discovery 開始,對著執行中的服務、加上你手邊有的規格文件去盤點;產生出來的測試計畫會包含授權、錯誤處理和邊界條件這幾類——正好是大家最常跳過的那幾類。

對於一路透過 Collection 學會這門技術的人來說,好處是:你可以繼續用 Collection 來探索和撰寫文件,那正是它最擅長的事,而回歸測試套件也不再是一堆只有一個人維護的 JavaScript。

有官方的免費 PDF 嗎?

那由出版社決定,而且會變動。這個頁面提供的是實務上用得到的知識,不是一本書的複製品。

應該先學 Postman 嗎?

應該。這是最快建立起正確 API 心智模型的方式,而這份理解可以帶到任何其他工具上。

需要學那些腳本嗎?

學到看得懂就夠了。當你開始寫大量腳本時,那就是一個訊號:用 Collection 當回歸測試套件已經不敷你所需。

學習順序應該是什麼?

先學會送出請求,再學會對回應內容做斷言,接著處理驗證,然後串接呼叫,最後是清理資料。最後兩項正是多數人停下來的地方,也正是價值所在。

Newman 用在 CI 上就夠了嗎?

它在 CI 裡執行 Collection 沒有問題。真正的問題是底層那些腳本由誰維護,而不是由哪個執行器來跑。

簡短版

要學的是那四個問題,不是選單。

Postman API 測試與開發,大部分就是在處理 session、擷取到的值、執行順序和清理。Collection 非常適合用來探索和撰寫文件;當底下的腳本變成一個框架時,就該把回歸測試搬到專為此打造的地方。