使用 Postman 測試你的 API
Intro
最近想對 API 做一些自動化測試,看了幾個工具,最后選擇了 postman,感覺 postman 的設計更好一些,我們可以在請求發送之前和請求獲取到響應之后都可以自定義腳本,很靈活。而且 postman 的支持直接導入 swagger 定義,這樣我們就可以很容易的和接口的 swagger 文檔結合起來,而且值得一提的是看了幾個工具 postman 是看的幾個工具里唯一一個支持 openapi 3.0 的文檔導入的,其他工具只支持 swagger 2.0,openapi 3.0 是不支持的。
先來看一個 postman 測試的結果
下面就基於一個 swagger 文檔來導入API並測試 API
GetStarted
postman 支持直接給出一個 swagger 的 json 描述文檔可以是本地的也可以是在線的,這里我們以一個在線的swagger文檔作為示例
- 打開左上角的
File
=>Import
- 打開 asp.net core 的 swagger 頁面,如下圖,使用的示例:https://reservation.weihanli.xyz/swagger/index.html
- 將 swagger 文檔的地址 copy 到對應的 url 輸入框中
導入之后可以得到類似下面的示例, API 對應着這個 Collection,swagger 中的分組對應的 collection 下的 folder,具體的某一個 api 對應着具體的 request
-
調整 api 請求,調整 api 請求需要的參數或請求頭等信息
-
編輯 Collection 信息
打開 Collection 的編輯頁面
打開 Varibales
Tab, 導入之后你會發現請求的地址都是以 {{baseUrl}}
開頭的,這是 postman 增加的一個變量,在 Collection 的編輯頁面可以看到,修改成自己實際要使用的地址:
打開 Tests
Tab, 編寫一個簡單的測試,這里確保請求的響應 statusCode 是 200:
// ensure statusCode 200
pm.test("response is ok", function () {
pm.response.to.have.status(200);
});
- 運行 api
自定義請求參數變量
postman 中的參數使用 {{variableName}}
的形式來使用,上面的 baseUrl
就是一個變量
我們可以在請求中使用參數,然后在運行測試的時候設置一個 json/csv 文件來代替這些參數,下面來看一下示例:
這個公告詳情的接口是需要一個參數的,這里我們設置為一個變量,變量名叫做 path
然后再來運行我們的測試
選擇我們准備的測試數據,支持 json 和 csv,csv 必須要有 header, header 就是變量名,這里我使用的是 json
選擇好文件之后,可以預覽我們的數據
數據無誤之后就可以運行我們的測試了,運行之后可以在結果頁面看到具體的請求信息
可以看到,我們的參數已經被 json 文件里的定義替換調了
More
postman 的功能十分強大,這里就介紹這么多,后面再來分享如何編寫測試用例以及自動化測試,希望有所收獲