不管是接口調試仍是接口測試,postman都算的上很優秀的工具,好多接口測試平臺、接口測試工具框架的設計也都能看到postman的影子,咱們真正瞭解了這款工具,才能夠在這個基礎上進行本身的設計和改造。前端
-簡介git
界面介紹算法
主要界面功能介紹npm
工做臺頁面主要介紹json
-postman基礎用法介紹 vim
-postman高階應用後端
環境變量api
全局變量(Globals)安全
Environment變量cookie
collection用例集
用例集建立
用例集執行
用例集分享,導入導出
-生成API文檔
-JavaScript腳本
Postman Sandbox
經常使用的庫和使用程序
Pre-request JavaScript
Tests
-Mock Server
建立mock server
編輯mock response(建立example)
使用mock server
類似工具: 命令行curl fiddler
下載地址:官網下載https://www.getpostman.com/
若是個人文檔看不明白直接看官方文檔吧:https://learning.getpostman.com/docs/postman/launching_postman/installation_and_updates/
postman功能介紹:
l New: 新建,能夠建立request(請求),collection(請求集),environment(環境變量)等。
l Inport:導入,能夠直接導入postman請求集,curl等一些請求文件。
l Runner: 執行請求,能夠選擇執行請求的collection,而且添加執行參數,例如執行時間,執行次數等等。
l Workspace: 工做臺,能夠選擇使用我的工做臺或團隊工做臺,能夠建立team而且邀請成員加入一塊兒編輯使用請求集。
l History: 歷史請求,全部調試的歷史請求數據
l Collection: 請求集,能夠建立保存,將某些請求放到一塊兒造成請求集
l Environment: 環境變量,管理設置的環境變量,能夠設置全局環境變量,也可新建環境,添加環境變量
l 請求方法: 支持get,post,put,patch等請求方法
l URL: 能夠直接輸入請求URL,也能夠經過環境變量設置,自定義URL
l Params: 請求參數
l Authorization: 認證鑑權,支持多種受權鑑權
l Header: 請求頭
l Body: 請求體,包含form-data,json,文件上傳等
l Pre-request-Script: 請求腳本,能夠在請求發起前執行的腳本
l Tests: 接口測試,請求完成後進行的測試腳本
l Cookies: 能夠爲請求添加cookies
l 下面就是response的一些信息,返回數據,返回頭,cookie,測試結果等
以一個線上課程請求實例來介紹:
URL: http://101.201.177.5/app/api/study/course/list
基本上,若是是簡單的接口調試就是按照以上的步驟進行操做
場景:以線上課程爲例,請求線上課程須要在header中添加認證,那麼每次請求都添加嗎?咱們能夠設置全局變量
設置變量名和value值
initial value: 分享出去給team中的人用時的變量值
current value: 當前本身使用該變量時變量的值
3. 在請求中使用全局變量 格式:{{ 變量名 }}
場景:以線上課程爲例,首先在本地環境調試,而後發佈到測試環境還須要測試,發佈到線上還須要調試,那每次都更換URL嗎?
設置environment變量,能夠選擇相應環境,每一個環境裏有單獨的環境變量使用
設置environment變量
設置:環境名
variable: 變量名
initial value: 分享出去給team中的人用時的變量值
current value: 當前本身使用該變量時變量的值
在postman中使用環境,預覽環境變量,使用環境裏設置的環境變量
使用語法:{{ 參數名 }}
在postman中,全部的請求並不都是獨立存在的,咱們能夠根據項目,根據業務,根據接口的關聯性,依賴性建立請求集來管理咱們的接口。
New」-> 「Collection」-> 「Name」; 「Description」
輸入用例集名稱,描述,authorination,pre-request,test等,若是添加了這些配置,那麼會對集內的全部請求生效
場景:以線上課程爲例,我想看下線上課程列表,線上課程詳情等相關接口是否都正常?頻繁請求這些接口是否有異常?這就可使用runner,可是runner自己並不能做爲一個壓測工具,由於runner執行是阻塞隊列,串行執行請求,並不能拿來作併發測試,可是能夠簡單看一下接口的健壯性,若是想對接口進行簡單的壓力測試,可使用ab,jmeter等工具
選擇collection,選擇環境,設置運行參數
choose collection: 選擇要運行的用例集
Environment: 選擇環境變量
Iterations: 設置循環次數
Delay: 每次循環的間隔
Log Responses: 響應日誌,默認
Data: 選擇csv文件(能夠添加測試數據,在tests中用data參數訪問)
經過對運行參數的設置能夠完成簡單的併發測試
能夠經過console查看具體的request請求,經過run result查看測試結果
場景:若是後端同窗完成了接口調試,前端是否能夠直接拿到相關項目的接口作聯調?或者前端調試問題須要進行mock server,如何拿到別人的接口數據。
有2種方法能夠選擇
創建team workspace,分享給團隊人員
將我的工做臺的collection,分享到team workspace,這樣team裏的人就能夠在team workspace中看到
咱們能夠直接將collection生成API在線文檔
生成在線文檔給到其餘人共享 返回文檔
發佈生成一個api文檔連接
Postman sandbox 是一個JavaScript執行環境,能夠在爲請求編寫預請求腳本和測試腳本時使用它。
l Lodash: js實用程序庫
l Cheerio:核心jQuery Api的快速精簡實現
l Tv4json模式驗證器: 針對json-schema的v4驗證json對象
l CrytoJS: 標準和安全的加密算法。支持的算法:AES,DES,EvpKDF,HMAC-MD5,HMAC-SHA1 / 3/256/512,MD5,PBKDF2,Rabbit,SHA1 / 3/224/256/512,TripleDES
l Xml2Json: xml文件轉換爲json對象
預請求腳本:在發送請求前執行的腳本
應用場景:
那麼預執行腳本能夠有哪些操做呢?postman給咱們設置好了一些經常使用的操做
返回文檔
返回文檔
返回文檔
大致上有這麼幾種,固然不只僅這些,能夠本身寫js腳原本實現本身的需求
在請求完成後,咱們也經過腳本進行測試或進行一些置後的操做,例如重置環境變量,新增環境變量,或者是一些校驗代碼
postman提供的快捷方法有這些:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
2.//測試是否包含某個字段
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
3.//測試解析json數據
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
4.//測試是否等於某個字段
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
5.//檢查header
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
6.//請求時間校驗
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
7.//返回值在某個區間
pm.test("Status code name has string", function () {
pm.response.to.have.status("Created");
});
8.//使用json schema 校驗結果
var schema = {
"items": {
"type": "boolean"
}
};
var data1 = [true, false];
var data2 = [true, 123];
pm.test('Schema is valid', function() {
pm.expect(tv4.validate(data1, schema)).to.be.true;
pm.expect(tv4.validate(data2, schema)).to.be.true;
});
應用場景: 後端接口寫的差很少的時候能夠直接將postman文件發給前端作mock server,若是前端須要本地復現問題也不須要線上跑業務拿數據再複製下來查看,能夠直接用postman中的接口文件作mock server
如何爲一個collection建立mock server?
1) 直接建立mock server
「new」-> 「mock server」
輸入method,URL path,返回值,它會自動給生成collection及mock URL 以及保存example
2) 給collection建立mock server
在collection中建立一個mock server,建立完成後須要把collection中的請求接口保存爲example,編輯返回值等等
編輯mock地址,以及response body,mock地址要用生成mock server時的那個地址,也能夠將這個地址設置爲環境變量,方便使用。
直接使用生成的mock server地址加請求path 就能夠看到mock數據了。