Postman使用完全指南

1. postman的環境變量

1.1. 全局變量

在這裏插入圖片描述
可以看到我的請求url中有個{{domain}},這是什麼東西呢?這其實是環境變量,我們可以在如下設置環境變量
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

1.2. 測試環境和生產環境設置不同的環境變量

這裏設置的變量爲全局變量,除此之外我們還可以根據不同的環境設置不同的變量,比如測試環境和生產環境
在這裏插入圖片描述
在這裏插入圖片描述
接下來我們就可以使用這個環境的環境變量
在這裏插入圖片描述
在報文中通過{{username}}取值

1.3. 設置每一個請求的局部變量

除了上面的兩種方式外,我們還可以設置每一個請求的局部變量
通過var定義一個變量,通過setGlobalVariable設置局部變量,如下所示
在這裏插入圖片描述
在這裏插入圖片描述

1.4. Postman的內置環境變量

除了自己設置的環境的變量外,Postman還內置了5個環境變量

{{$guid}} //生成GUID 
{{$timestamp}} //當前時間戳 
{{$microTimestamp}} //當前毫秒時間戳 
{{$randomInt}} //0-1000的隨機整數 
{{$randomFloat}} //0-1000的隨機浮點數;

2. 如何依賴前一個接口的返回值

有時候比如我們有個查詢接口,該接口需要先登錄,拿到登錄後的token,然後放到查詢接口的請求頭中查詢接口才能查詢,postman應該怎麼設置呢?
第一步
創建一個集合
在這裏插入圖片描述
第二步
在登錄接口的Tests中編寫如下代碼

var jsonData = pm.response.json();
var token = jsonData.data.token;
pm.environment.set("token",token);

該代碼的意思爲獲取返回的json值並且把他設置到環境變量中,除了environment.set設置環境變量,還有如下方法

pm.environment.get("variable_key"); //獲取環境變量
pm.environment.unset("variable_key"); //清除一個環境變量
pm.globals.set("variable_key", "variable_value"); //設置一個全局變量
pm.globals.get("variable_key"); //獲取一個全局變量
pm.globals.unset("variable_key"); //清除全局變量
pm.variables.get("variable_key"); //獲取變量,該函數在全局變量和活動環境中搜索變量

第三步
在查詢接口的請求頭中獲取這個環境變量
在這裏插入圖片描述

3. Postman斷言

斷言,就是結果和預期對比,如果一致,則用例通過,如果不一致,斷言失敗,用例失敗。把如下代碼寫在Tests中
在這裏插入圖片描述
檢查響應主體是否包含字符串

pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

檢查響應主體是否等於一個字符串

pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

檢查JSON值

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});

內容類型存在

pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

響應時間小於200ms

pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

狀態碼是200

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

4. Postman的其他比較有用的功能

加密並進行base64編碼

var hash = CryptoJS.HmacSHA1(s,key);
postman.setGlobalVariable("checksum", hash.toString(CryptoJS.enc.Base64));

base64解碼

var intermediate = CryptoJS.enc.Base64.parse(base64content);

發送異步請求,該功能既可以作爲預先請求,也可以作爲測試腳本使用

pm.sendRequest("https://postman-echo.com/get", function (err, response) {
    console.log(response.json());
});

4. 寫在最後

以上設置完了記得按ctrl+s保存,不然不生效的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章