Postman 誕生於 2013 年,一開始只是 Abhinav Asthana 着手於解決 API 測試的工具,隨着這個工具的使用者和需求迅速激增,Abhinav Asthana 找了他的兩個前同事 Ankit Sobti 和 Abhijit Kane 一塊兒建立了公司 Postman Inc。html
現在 Postman 已經成爲一個 API 開發的協做平臺。Postman 簡化了構建 API 的每一個步驟,並簡化了協做,這樣就能夠更快地建立 API。git
Postman 容許用戶在發送和接收時使用變量,以提升工做效率和可讀性(不過只能保存字符串類型的值,因此複雜數據類型須要藉助於 JSON.stringify()
和 JSON.parse()
來管理)。github
例如在不一樣運行環境中設置域名地址爲變量:npm
Postman 支持在不一樣的做用域和上下文中使用變量,遵循就近原則,即若是在 Global
和 Environment
中都有變量 name
,則會取 Environment
中的 name
。json
Global:全局變量能夠在整個工做空間(Workspace)中使用,由於沒法控制使用環境和容易形成混淆,應當是不可變的全局常量,謹慎使用。瀏覽器
pm.globals.set("variable_key", "variable_value"); pm.globals.get("variable_key");
Collection:集合變量在單個集合(Collection)中可用,每每具有通用的業務綁定屬性,例如:商品屬性、會員等級、通用祕鑰等。安全
pm.collectionVariables.set("variable_key", "variable_value"); pm.collectionVariables.get("variable_key");
Environment:環境變量容許請求適應不一樣的環境,例如:本地、測試、預演和生產環境,經常用來區別請求地址。服務器
pm.environment.set("variable_key", "variable_value"); pm.environment.get("variable_key");
Local:局部變量只在單個請求生命週期中可用,運行完成後自動銷燬。dom
pm.variables.set("variable_key", "variable_value"); pm.variables.get("variable_key");
Postman 內置了不少常見場景的動態變量。工具
備註:Postman 支持在 Pre-request Script 和 Tests 中打印調試信息,和瀏覽器控制檯一致,可使用命令:console.log()
、console.info()
、console.warn()
和 console.error()
。
console.log('當前時間戳:', pm.variables.replaceIn('{{$timestamp}}')); console.log('隨機顏色:', pm.variables.replaceIn('{{$randomColor}}')); console.log('隨機 IP:', pm.variables.replaceIn('{{$randomIP}}')); console.log('隨機名字:', pm.variables.replaceIn('{{$randomFullName}}')); console.log('隨機職業:', pm.variables.replaceIn('{{$randomJobType}}')); console.log('隨機城市:', pm.variables.replaceIn('{{$randomCity}}')); console.log('隨機圖片:', pm.variables.replaceIn('{{$randomImageUrl}}')); # 輸出 當前時間戳:1609060090 隨機顏色:azure 隨機 IP:163.140.207.64 隨機名字:Chester Funk 隨機職業:Coordinator 隨機城市:Port Devinborough 隨機圖片:http://placeimg.com/640/480
在 Postman 中,一個完整的 Postman 請求生命週期,除了常規的請求(request)和響應(response),還包括前置請求腳本(pre-request script)和後置測試腳本(tests script)。Postman 包含一個基於 Node.js 的強大運行態(runtime),容許用戶在 pre-request script 和 tests 事件中編寫 JavaScript 代碼。
前置請求腳本(pre-request script)顧名思義就是在請求發送以前執行的腳本。
小技巧一:在連接中使用 :id
自定義路徑參數
小技巧二:Cookie 可編輯
小技巧:保存響應結果
保存後的結果能夠做爲案例或記錄以便開發使用。
Postman 支持在請求響應後經過測試腳原本驗證請求是否符合預期。
示例一:驗證響應狀態碼是不是 200
pm.test("Status test", function () { pm.response.to.have.status(200); });
示例二:驗證返回的業務數據(JSON)是否符合預期
pm.test("請求成功!", function () { var jsonData = pm.response.json(); pm.expect(jsonData.message).to.eql('success'); });
在 Postman 應用程序中有一個內置代理來捕獲 HTTP 請求。
本機 IP 地址:
手機設置:
代理服務器是一個應用程序或系統,做爲計算機和互聯網之間的中介,或者更具體地說就是表明着客戶端和服務器,向網站、服務器和其餘互聯網服務發出請求。
除了傳遞信息,代理能夠作更多的事情:
默認狀況下,Postman 將使用自帶的系統代理,若是自定義了代理,優先級將高於自帶的系統代理。
集合運行器(Collection Runner)容許以指定順序運行集合裏面的請求。Collection Runner 將記錄請求測試結果,而且腳本能夠在請求之間傳遞數據。
Postman 提供腳手架工具 Newman 來以命令行的方式來運行集合(Collection)請求,其提供和 Postman 桌面端一致的功能,能夠集成在工做流的 CI/CD 中。
# 安裝 npm install -g newman # 運行文件 newman run mycollection.json # 運行 URL newman run https://www.postman.com/collections/cb208e7e64056f5294e5 -e dev_environment.json
另外 Postman 提供了不少團隊協做須要的付費功能,例如:文檔、監控、健康檢查等。
版權聲明
本博客全部的原創文章,做者皆保留版權。轉載必須包含本聲明,保持本文完整,並以超連接形式註明做者後除和本文原始地址:https://blog.mazey.net/1878.html