跳到內容

5 分鐘測試一個 REST API

目標:從一份 OpenAPI 規格出發,做到一個能驗證完整流程的自動化測試。

檔案 ▸ 匯入Ctrl+I),接著填入您 openapi.json 的 URL。

Restorm 會建構出完整的樹狀結構:每個標籤一個資料夾、每個操作一個請求、帶型別的 參數、文件,以及已經接好變數的身分驗證標頭。

OpenAPI 匯入產生的樹狀結構,開箱即可使用:每個標籤(pet、store、user)一個資料夾,每個操作一個預先填好的請求,旁邊是環境資料夾的首頁子分頁

如果您的 API 沒有規格文件,可以直接貼上一條 curl 命令 — 請參閱 cURL 匯入

請開啟匯入時建立的環境資料夾。基底 URL 已經在那裡了;您只需要把匯入為您準備好的 身分驗證變數填完。

如果您要測試多個目標,請再建立第二個環境 — smartbar 的選擇器可以一次切換整個資料夾。

開啟一個請求,然後點選傳送。回應就會顯示出來:狀態、耗時、標頭,以及放在可 折疊檢視器裡的內文。

如果有什麼漏掉了,URL 欄位下方顯示的解析後值會告訴您。

右鍵 ▸ 新增 ▸ 情境。這裡走的是「建立、重讀、刪除」這條流程:

HTTP 請求「POST /clients」
└─response──► Assert (eq, 201)
└─► 設定變數「clientId」 ◄── 選擇器 body.id
HTTP 請求「GET /clients/{id}」
└─response──► Assert (eq, 200)
└─► Schema validate(客戶的 JSON Schema)
HTTP 請求「DELETE /clients/{id}」
└─response──► Assert (eq, 204)

這三個請求的 URL 都用到 {{clientId}}:第一步寫入的執行期變數,會被後面的步驟 讀取。

把每個斷言的 done 連接埠接到下一個請求的 in 連接埠,就能把它們串接起來 — 這正是順序的保證。

請點選執行。記錄會開始填滿;請在每個步驟之後加上一個 Log 動作,把真正重要的東西記 下來。

在關鍵斷言的 else 輸出上接一個 Throw 動作:這正是讓 CI 作業失敗的手段。

Terminal window
RESTORM_TOKEN=rstk_… restorm \
--open ./api.restorm \
--run "Parcours client" \
--headless \
--out run.log

一切通過時結束代碼為 0,否則為 1。GitHub Actions 與 GitLab CI 的範例請參閱 headless 執行與 CI