Postman 正確使用姿勢


前言:

請各大網友尊重本人原創知識分享,謹記本人博客:南國以南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記錄點滴每天成長一點點,學習是永無止境的!轉載請附原文鏈接!!!

參考鏈接參考鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM