1. 背景
- 在大型互聯網項目中,用戶登錄后都要返回一個 token 給客戶端用于認證授權,存儲在瀏覽器的本地存儲中。以后每次發(fā)送請求,都必須在請求頭中攜帶這一認證 token 才能正常獲得服務器的響應。對于 Postman 測試來說,每測一個接口 URL 都要手動地在 Headers 中添加認證 token 是一件非常崩潰的事。
- 本篇博文教你如何使用 Postman 的 Globals 全局變量、Environment 環(huán)境變量、Pre-request Script 自動獲取最新 X-Authorization 的 token 并自動填充到所測試請求中 Headers 中。
2. 使用方法
1)設置全局環(huán)境變量
-
全局變量 Global 是在整個 Workspace 中都能獲取的變量。例如登錄賬號和密碼。需要注意的是,全局變量可以被處于同一個 Workspace 中的任何人查看和編輯,因此對敏感涉密的信息要謹慎處理。點擊右上角的小眼睛就能添加全局變量。
-
設置了三個全局變量,分別是登錄系統的賬號和密碼,以及認證授權 token 。注意,
username
賬戶和password
密碼這兩個全局變量在【INITIAL VALUE】和【CURRENT VALUE】兩個空中都必須填寫,后面在【Pre-request Script】腳本中才能獲取到這兩個全局變量。
2)設置測試環(huán)境
-
主要是設置測試環(huán)境的 IP 地址和端口。
-
這樣設置后,以后只要切換到【Dev】開發(fā)環(huán)境,輸入請求的 URL 時,就能用
{{host}}
來替換localhost:9090
了。
3)編寫Pre-request Script
-
Pre-request Script 是 JavaScript 腳本,在請求被發(fā)送前,會首先執(zhí)行這個腳本。Pre-request Script 可以給單個請求設置,也可以給整個 Collection 設置。筆者這里選擇了后者,點擊 Collection 名稱即可進入編輯 Pre-request Script 的頁面。
-
因此,我們編寫這樣一個腳本:在每次發(fā)送一個請求前,先發(fā)送一個 POST 請求去獲取最新的 token ,獲取 token 時使用 Global 全局變量中的賬戶和密碼來登錄系統,然后把這個 token 更新到 Global 全局變量中的 token 。
const getToken = { url: "http://localhost:9090/api/auth/login", method: "POST", header: 'Content-Type:application/json', body: { mode: "raw", raw: JSON.stringify({ "username": pm.globals.get('username'), "password": pm.globals.get('password') }) } }; pm.sendRequest(getToken, function(err, res) { pm.globals.set("token", "Bearer " + res.json().token); });
4)舉例
-
現在我來測試一個獲取設備列表的 GET 請求 API 。
-
點擊【Send】后,成功獲取數據。
-
此時查看 Console 控制臺發(fā)現確實發(fā)送了 2 個請求。
-
第一個請求就是 Pre-request Script 中使用腳本發(fā)送的請求,用于獲取認證 token 并存儲到 Globals 全局變量
token
中。可以看到所測試的 GET 請求成功把 X-Authorization 的 token 存在請求頭中。文章來源:http://www.zghlxwxcb.cn/news/detail-785272.html文章來源地址http://www.zghlxwxcb.cn/news/detail-785272.html
到了這里,關于【Postman】自動填充X-Authorization令牌token到請求頭Headers中的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!