一、postman概述
1.1定義
1、postman:一款功能強大的網頁調試與發送網頁HTTP請求的工具。
2、測試集合collection:collection可以看作是request的集合,也可以看作是testsuite,對接口測試進行歸類,支持導入/導出。
3、測試沙箱:可以使用JS編寫測試腳本,對request結果添加測試斷言等。
4、環境與變量:支持設置運行的環境與該環境下的一些變量,也支持設置一些和環境無光的變量。
1.2下載與安裝
1、下載地址:https://www.getpostman.com/downloads/
2、支持系統:Mac、Windows、Linux
3、安裝步驟:雙擊EXE文件根據安裝提示進行即可完成安裝。
二、postman使用詳解
2.1 postman功能區域
postman主界面分為7個功能區域,分別為:工具欄、快速功能圖標區域、快速檢索、測試項目或測試集管理區域、環境變量配置與設置區域、請求配置區域、響應展示區域。如下圖所示:

2.2 Request四要素
1、URL:
請求的地址,如果有參數會自動解析顯示在params中,如果手動在params中添加參數,也會自動補充到URL中;
2、Method:
幾乎支持所有的method:GET、POST、PUT、PATCH、DELETE、COPY......
3、Headers:
可以隨便添加、編輯header attribute,打出首字母時,會很貼心的在下拉菜單中顯示標准的attribute;
4、Request Body:
(1)form-data:可以上傳一個文件作為key的value提交,key—value不寫入URL,而直接提交;
(2)x-www-form-urlencoded:key—value會寫入URL
(3)Raw:可以包含任何東西,都會隨時請求發送;
(4)Binary:image、audio、video、text files;
2.3 Response介紹

1、Body、Cookie、Header、Test四個模塊;
2、可復制、保存、搜索response;
3、Body提供三種視圖查看:
(1)Pretty:格式化后顯示,方便查看;
(2)Raw:最原始數據,即text格式;
(3)Preview:自動解析HTML頁面並顯示;
4、status、time、size單獨顯示在旁邊,鼠標懸浮可查看詳情。
2.4環境與變量
1、當測試存在多個環境時,可以先設置一個環境,然后在此環境下設置一系列變量。
2、也可單獨設置一系列變量,不選擇環境(默認環境)時,這些變量生效,選擇環境后,環境變量覆蓋這些變量。
3、變量的格式為:{{XXX}}
4、環境與全局變量
(1)postman.setEnvironmentVariable(variableName, variableValue)
設置一個環境變量“variableName”,並為其分配字符串“variableValue”。您必須為此方法選擇一個環境才能工作。
注意:只能存儲字符串。存儲其他類型的數據將導致意外的行為。
(2)postman.getEnvironmentVariable(variableName)
返回環境變量“variableName”的值,用於預請求和測試腳本。您必須為此方法選擇一個環境才能工作。
(3)postman.setGlobalVariable(variableName, variableValue)
設置一個全局變量“variableName”,並為其分配字符串“variableValue”。
注意:只能存儲字符串。存儲其他類型的數據將導致意外的行為。
(4)postman.getGlobalVariable(variableName)
返回全局變量“variableName”的值,用於預請求和測試腳本。
(5)postman.clearEnvironmentVariable(variableName)
清除名為“variableName”的環境變量。您必須為此方法選擇一個環境才能工作。
(6)postman.clearGlobalVariable(variableName)
清除名為“variableName”的全局變量。
(7)postman.clearEnvironmentVariables()
清除所有環境變量。您必須為此方法選擇一個環境才能工作。
(8)postman.clearGlobalVariables()
清除所有全局變量。
(9)Environment
當前環境中的變量字典。使用environment["foo"]訪問“foo”的環境變量的值。
注意:這只能用來讀取變量。使用setEnvironmentVariable()設置值。
(10)Globals
全球變量字典使用globals["bar"]訪問“欄中的”全局變量的值。
注意:這只能用來讀取變量。使用setGlobalVariable()設置值
2.5測試沙箱
2.5.1測試沙箱描述
Postman測試沙箱:是一個JavaScript執行環境,可以通過JS腳本來編寫pre-requist和測試腳本。
1、Pre-request script:可以修改或設置一些默認參數,在request之前執行;
2、Tests使用語言Java script,用來建議response是否滿足要求;
3、由描述性的Key和布爾型結果組成,可以理解為斷言,並且可以創建多個Key;
4、Snippets:可以助你快速添加代碼,其他代碼可參考官方文檔;
2.5.2 測試斷言
Postman斷言:在請求返回之后,運行,並根據斷言的pass\fail情況體現在最終測試結果中。

1、校驗返回狀態是否正確:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
2、校驗請求響應時間是否低於某個值:
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
3、校驗某個字段的返回值是否等於指定的值:
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
或
pm.test("Your test name", function () {
var jsonData = pm.response.json();
console.log(jsonData.data);
console.log(jsonData.data[0]);
console.log(jsonData.data[0].value);
pm.expect(jsonData.data[0].value).to.eql(100);
});
4、校驗某個字段的返回值中是否包含指定的值:
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.include(100);
});
5、用for循環的方式校驗一組數據中某個字段的返回值是否等於指定的值,並打印出返回值:
pm.test("Your test name", function () {
var jsonData = pm.response.json();
for(var i=0;i<1;i++){
}
pm.expect(jsonData.value).to.eql(100);
});
2.6 Postman Console
1、定義:postman在腳本使用變量時,通過console控制台,查看接口測試log。
2、操作步驟:
(1)Menu --> View ---> Show Postman Console,打開Postman Console的頁面;
(2)在Request中的Pre-request Script或者Tests里插入腳本console.log("variables")。當你發送請求時,此腳本將會執行,將參數對應的值打印到Postman Console中;
(3)查看運行當前接口在Console中打印的記錄。

2.7多接口測試管理
2.7.1 collection描述
1、如果每個request看作是testcase,那么collection就是testsuite;
2、collection可以一鍵運行所有的request;
3、collection可以使用csv或者json文件導入變量,官網提供模板文件;
4、引用變量語法有2個:data.username 或者data.['username']

2.7.2 操作步驟
