前言:
請各大網友尊重本人原創知識分享,謹記本人博客:南國以南i
簡介:
Postman是一個接口測試工具,在做接口測試的時候,Postman相當於一個客戶端,它可以模擬用戶發起的各類HTTP請求,將請求數據發送至服務端,獲取對應的響應結果, 從而驗證響應中的結果數據是否和預期值相匹配;並確保開發人員能夠及時處理接口中的bug,進而保證產品上線之后的穩定性和安全性。 它主要是用來模擬各種HTTP請求的(如:get/post/delete/put..等等),Postman與瀏覽器的區別在於有的瀏覽器不能輸出Json格式,而Postman更直觀接口返回的結果。
背景:
當我們使用Postman做接口測試時,不免某些接口請求前需要獲取token參數,驗證請求是否有效。
問題引申:當我們獲取到token后需要手動添加到請求頭里面,一旦token過期了,需要重新獲取token,需要手動替換請求頭中的token。周而復始麻煩的很!!!
解決思路:設置Postman中全局變量,將參數返回值token設置全局變量,便於其他接口調用
Test 簡介
在 postman 中封裝了我們常見的斷言(Tests),當然 Tests 除了可以作為斷言,還可以當做后置處理器
- 獲取當前接口的響應,傳遞給下一個接口
- 控制多個接口間的執行順序
一、【登入接口】獲取token
1.1 設置全局變量
設置全局參數,添加請求【登入接口】的請求參數

1.2 調用全局參數

二、【查詢接口】並入token
2.1 【查詢接口】token驗證
2.2 【登錄接口】中使用Tests語句自動添加環境變量
//把返回值解析成json字符串 var res = JSON.parse(responseBody) //參數填充 postman.setEnvironmentVariable("authorization",res.value.token); //簡寫 //pm.environment.set("authorization", res.value.token); //自動設置值 //postman.setGlobalVariable("authorization",res.value.token)
發送請求運行后,再次查看【登入請求】,全局參數已自動添加token值
2.3 【查詢接口】中引用參數值
引用參數值,實現每執行【登入接口】請求,完成token自動賦值替換
Tests 中常用方法
//1、設置環境變量 postman.setEnvironmentVariable("key", "value"); 或 pm.environment.set("key", "value"); //2、設置全局變量 postman.setGlobalVariable("gv", "111111"); 或 pm.globals.set("g", "2222"); //3、檢查resonse body中是否包含某個string tests["結果:Body matches string"] = responseBody.has("string_you_want_to_search"); 或 pm.test("結果:Body is correct", function () { pm.response.to.have.body("response_body_string"); }); //4、驗證Status code狀態響應碼是否是某個值 tests["Successful POST request"] = responseCode.code === 200 || responseCode.code === 202; 或 pm.test("Successful POST request", function () { pm.expect(pm.response.code).to.be.oneOf([200,202]); });
Pre-request Script 簡介
- Pre-request Script是集合中請求發送之前需要執行的代碼片段
- 請求參數中包含一個隨機數或者請求header中包括一個時間戳,或者你的請求參數需要加密
一、【登錄接口】請求發起前處理
使用Pre-request Script語句對密碼進行加密請求
var body_json = { "userCode" : "admin", "passwd" : "123456" } pwd = body_json["passwd"] // 獲取passwd的值 var pwd = CryptoJS.MD5(pwd).toString() // md5加密pwd變量 body_json["passwd"] = pwd // 設置passwd為加密后的密碼 console.log(body_json) var body_str = JSON.stringify(body_json) // converts objects to strings pm.environment.set('request_body', body_str) // 把處理后的body賦值給參數request_body,在body中輸入{{request_body}}
樣例:
Pre-request Script 中常用方法
// 清除全局變量 pm.globals.unset("variable_key"); // 清除環境變量 pm.environment.unset("variable_key"); // 獲取全局變量 pm.globals.get("variable_key"); //獲取一個變量 pm.variables.get("variable_key"); // 獲取環境變量 pm.environment.get("variable_key"); //發送一個請求 pm.sendRequest("https://postman-echo.com/get", function (err, response) { console.log(response.json()); }); //設置環境變量 pm.globals.set("variable_key", "variable_value");
總結:
我是南國以南i記錄點滴每天成長一點點,學習是永無止境的!轉載請附原文鏈接!!!