Apifox 前置操作的使用
1. 題記
API測試真麻煩:近期在xxx項目上測試API時,因爲要是通過網關請求API,需要認證token才能請求,所以在每次測試的,都要先登錄系統,從瀏覽器複製token,再貼到apifox的接口上把token帖上去,然後再去測試具體的接口;更麻煩的是,切換環境的時候,token也要換,又要把上面的步驟重做一遍;
API測試真絲滑:在使用apifox過程中,注意到有個前置操作的功能,用起來之後,把上面需要n次鼠標點擊操作變給0次鼠標點擊操作,只需要關注具體的API接口的測試即可。
本次前置操作案例:使用apifox進行接口測試時,通過前置腳本自動獲取token並添加到全局變量,無須關注網關認證;
參考資料:
2. 實操
2.1 ### 定義全局變量
定義一個全局變量x-token
,用於存放我們的token;
2.2 前置操作獲取token
在項目概覽中添加前置操作,選擇自定義腳本;
腳本代碼如下:
// 獲取環境變量-前置URL
const envPath = pm.environment.get('BASE_URL')
console.log("path:" + envPath)
const http = {
url: envPath + "/security/login",
method: "POST",
header: "Content-Type:application/json",
body: {
mode: "urlencoded",
urlencoded: [
{ key: "username", value: "zhangsan" },
{ key: "password", value: "123456" }
]
}
}
// 遠程API測試才需要請求token
if (!envPath.includes("localhost")) {
pm.sendRequest(http, function (err, response) {
// console.log(response.json());
const res = response.json();
console.log(res.data.token);
pm.globals.set('x-token', res.data.token)
});
}
2.3 項目Auth設置token
在Apifox中使用全局變量的語法:{{變量名}}
, 如下圖:
2.4 暢爽的測試API
在測試接口的時候,會先執行前置處理腳本去調用登陸接口,然後解析接口裏的token,並把其賦值給全局變量x-token
,又因2.3中我們添加了全局的API Key認證,所以會在請求的時候自動將token放到每個接口的請求頭。
這樣我們在測試需要認證的接口時,就不用每次手動登陸系統,然後去瀏覽器裏把token複製出來,再貼到每個接口裏面了。