首頁 > 軟體

使用Postman測試需要授權的介面問題

2022-06-17 18:03:11

Postman是一款免費的http模擬請求工具,常用來測試開發介面。實際場景中,很多介面是需要授權才能使用。這就需要Postman獲取授權,把返回的token儲存,在呼叫其他介面時連同token一起傳遞。

我所在的專案基於spring全家桶,正常流程是:呼叫獲取驗證碼介面 -> 登入介面 -> 呼叫業務介面 。

  • 新建一個登入請求

"{{引數名}}"代表Postman的環境變數 captchaKey 呼叫獲取驗證碼返回 captchaCode 驗證碼,因為是測試環境,固定8888

  • 傳送請求前執行程式碼

切換到 Pre-request Script ,編寫請求驗證碼介面指令碼

var captchaApi = pm.environment.get("sa-gateway-host") + "/sa-auth/captcha";
pm.sendRequest(captchaApi, function (err, response) {
    //獲取返回值
    var responseBody =JSON.parse(response.text());
    //判斷返回值是否有data引數
    if (responseBody.data) {
        //如果有則此次驗證通過
        tests["first has data"] = true;
        //獲取需要的引數
        var captchaKey = responseBody.data.captchaKey;
        //列印獲取的引數
        console.log("response.data --> " + captchaKey); 
        //將值寫入當前選中的環境中 變成環境變數 
        postman.setEnvironmentVariable("captchaKey", captchaKey);
    }
});

  • 登入後儲存token

切換到 Tests ,編寫請求登入後的處理指令碼

//獲取返回值
var response =JSON.parse(responseBody);
//判斷返回值是否有data引數
if (response.access_token) {
  //如果有則此次驗證通過
  tests["first has data"] = true;
  //獲取需要的引數
  var access_token = response.access_token;
  //列印獲取的引數
  console.log("access_token --> " + access_token); 
  //將值寫入當前選中的環境中 變成環境變數 
  postman.setEnvironmentVariable("header-authorization", "Bearer "+access_token);
}

到這裡,Postman模擬登入請求完成。

指令碼基於javascript語法,對於web開發者非常簡單。

Postman專用函數和更多用法參考:learning.postman.com/docs/writin…

測試

傳送請求,在Postman控制元件臺有輸出紀錄檔

此時變數 captchaKey 和 header-authorization 的值是介面返回的值。

再新建一個介面,在header中傳入登入後返回的授權資訊。

不同系統的介面設計不一樣。我的專案是在header中加入 Authorization 欄位傳遞授權資訊。

執行介面請求,返回成功。

舉一反三

很多APP的介面會對資料加密。新建一個加密服務,用指令碼使Postman在傳送資料前先請求加密服務獲取密文,再傳送。然後處理返回結果,請求加密服務解密,就能實現介面測試了。

到此這篇關於用Postman測試需要授權的介面的文章就介紹到這了,更多相關Postman授權的介面內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com