一、前言
在日常開發中,除了正常的單元測試,某些情況我們還需要測試 HTTP 接口,團隊中目前使用的是「 Postman 」這款 API調試 、 HTTP 請求工具。通常我們將經常要測試的接口按照項目歸類,存放在 Postman 的收藏夾(即 Collections)中方便重復調用。然而,在多個環境測試或者接口之間有依賴關系時我們需要頻繁的改動請求體,下面將介紹這兩種情況的解決方法。
注:Postman 版本 6.7.1
二、多環境測試
2.1 場景
項目環境通常都不止一套,每次調試 HTTP 接口時都要修改請求地址是一件非常麻煩的事,所幸 Postman 提供了「 Environment 」管理功能,想要在多個環境中測試只需要切換環境即可。
2.2 解決方法
2.2.1 添加環境
① 打開 Postman,點擊界面右上角的齒輪按鈕「 Manage Environment」
② 點擊彈出框中的「 Add 」按鈕
③ 輸入 Environment Name,命名規則可為調試環境名+項目名,如「 local alpha」,其中 local 代表本地環境,alpha 代表項目名。然后添加一個名為 host 的變量(即VARIABLE),值為本地環境項目地址,最后點擊「 Add 」按鈕保存。
2.2.2 切換環境
① 回到主界面可以看到 Environment 下拉框已有剛添加的環境選項。
② 切換環境選擇新創建的「 local alpha 」,然后創建一個請求測試項目中已有的 HTTP 接口,請求地址中 host 部分使用剛定義的變量,雙層大括號引用變量名,如 {% raw %}{{% endraw %}{host}} 。
③ 請求接口后正常,如需切換一個新環境則按上述步驟操作即可。
三、處理接口之間的依賴關系
3.1 場景
上面提到了變量的使用方法,在日常開發中有可能遇到這樣一個情況:大部分接口都需要用戶登錄之后才能訪問,否則無法請求成功,用戶登錄成功后通常會有一個 token,此后每次請求都將在 header 中攜帶該參數用於識別用戶身份,此時如果用戶重新登錄導致 token 發生了變化,那么哪些依賴 token 的接口都要相應的修改,這將是個不小的工作量。
3.2 解決方法
3.2.1 添加 Tests 腳本
① 首先在用戶登錄接口的「 Tests 」中添加以下代碼。
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
// 把responseBody轉為json字符串
var data = JSON.parse(responseBody);
// 設置環境變量token,供后面的接口引用
pm.environment.set("token", data.data);
注:常用的腳本右側都有相應的快捷方式創建
② 接口調用成功后會執行上述代碼將返回結果中的 data 字段設置到環境變量「 token 」中。
3.2.2 設置變量
而后其余依賴 token 的接口可以在 header 中添加 key 為 token,value 為 {% raw %}{{% endraw %}{token}} 的參數就可以正常調用接口了。就算重新登錄后也不需要手動修改 header 里的 token 值,因為它會從環境變量中讀取。
四、結語
至此上述兩種情況的解決方法已經介紹完了,后續如有調整會再補充。