Postman接口測試工具是一款專為調(diào)試網(wǎng)頁和API而設(shè)計的軟件。Postman工具以前還有一個谷歌瀏覽器插件版,可惜現(xiàn)在無法使用了。因此,現(xiàn)在大家只能安裝Postman客戶端來進(jìn)行調(diào)試工作。這是一個綠色漢化版,使用教程可以在內(nèi)容中找到詳細(xì)介紹。Postman官方簡介將其稱為一款商業(yè)化的接口測試軟件。
軟件功能
模擬各種HTTPrequests
從常用的GET、POST到RESTful的PUT、DELETE…等等。甚至還可以發(fā)送文件、送出額外的header。
內(nèi)置測試腳本語言
支持編寫測試腳本,可以快速的檢查request的結(jié)果,并返回測試結(jié)果
Collection功能(測試集合)
通過collection的歸類,我們可以良好的分類測試軟件所提供的API.而且Collection還可以Import或是Share出來,讓團隊里面的所有人共享你建立起來的Collection。
人性化的Response整理
一般在用其他工具來測試的時候,response的內(nèi)容通常都是純文字的raw,但如果是JSON,就是塞成一整行的JSON。這會造成閱讀的障礙,而Postman可以針對response內(nèi)容的格式自動美化。JSON、XML或是HTML都會整理成我們可以閱讀的格式
設(shè)定變量與環(huán)境
Postman可以自由設(shè)定變量與Environment,一般我們在編輯request,校驗response的時候,總會需要重復(fù)輸入某些字符,比如url,允許我們設(shè)定變量來保存這些值。并且把變量保存在不同的環(huán)境中。

安裝方法
在本站下載postman插件后,打開chrome擴展程序管理頁面,復(fù)制chrome://extensions/粘貼到瀏覽器地址欄,然后按回車鍵提交,會打開一個名叫 【擴展程序】的窗口。將下載的postman插件crx格式文件拖放進(jìn)去就可以了。
第一種:添加過程成功后,在地址欄輸入:“chrome://apps”,就可以看到插件圖標(biāo)了
第二種:打開chrome的設(shè)置--更多程序---擴展程序,找到插件點擊啟動即可。

常見問題
問:為什么支持Postman Chrome應(yīng)用程序已被棄用?
答:原來早在2016年Google就宣布計劃終止對Windows,Mac和Linux用戶的Chrome應(yīng)用程序支持。 但是這項計劃的具體實施時間是2018年,這意味著,從2018年初開始,Postman Chrome應(yīng)用程序的支持即將消失。 這2年的過渡期就是給開發(fā)者時間去開發(fā)相應(yīng)的應(yīng)用程序。
問:postman工具怎樣傳遞csrf參數(shù),csrf 參數(shù)是在 header 里嗎?
答:Postman 由于是 Chrome 擴展的緣故能支持的 header 不多,需要安裝 Postman Interceptor才能自定義 header 字段。右上角那個衛(wèi)星圖標(biāo)就是 Interceptor。
postman使用教程
postman接口測試教程
1.數(shù)據(jù)(變量)
postman的數(shù)據(jù)包括全局變量,環(huán)境變量,外部文件和局部變量
全局變量:作用域是全局,比如我們要設(shè)置的token
環(huán)境變量:配置之后,讓測試用例既能夠在測試環(huán)境中執(zhí)行,也能在正式環(huán)境中執(zhí)行
局部變量:比如tests中定義的變量,作用域只能在這個tests中
外部文件變量:在run collections的時候可以設(shè)置循環(huán)次數(shù),指定外部數(shù)據(jù)文件。外部文件可以是csv格式的,也可以是json格式的。
Json data 文件格式:

csv data 文件格式

變量優(yōu)先級:外部文件變量> 環(huán)境變量> 全局變量,也就是說,在變量名相同的情況下,外部文件的變量優(yōu)先級最高
變量的定義
方法1:在postman的ui上進(jìn)行定義

方法2:使用腳本定義

變量的使用
方式1:Builder中的使用:{{varname}}
方式2:腳本中的使用

變量的沖突
如果Global和environment都設(shè)置了一個名字相同的變量,environment的變量會將global的覆蓋
2.sandbox
sandbox可以理解為一個測試沙箱,專門用來postman執(zhí)行js代碼的環(huán)境,可以通過js腳本來編寫pre-request和tests腳本
sandbox沙箱集成了幾個工具庫,比如loadsh,tv4等,還有一些內(nèi)置函數(shù),比如xml2JSON等
sandbox可以操作的對象
公共庫
環(huán)境變量和全局變量
動態(tài)變量
操作cookie
獲取和查看請求和響應(yīng)
讀取數(shù)據(jù)文件
pre-request 可以用來修改一些默認(rèn)參數(shù)或者設(shè)置一些測試需要的測試永久,tests可以用來做斷言

關(guān)于更多tests操作,可以查看幫助文檔
同時postman還有一個叫SNIPPETS的模塊,里面防止了常用的一些test斷言,直接點擊就可以使用了,如果這里沒有你需要的,可以查看幫助文檔

3.collections
集合的功能
組織業(yè)務(wù)邏輯:分類和存儲你的測試用例
導(dǎo)入導(dǎo)出:導(dǎo)入測試用例文件進(jìn)行runner,導(dǎo)出json文件,使用newman在命令行執(zhí)行(導(dǎo)入導(dǎo)出的collections就只是collections,不包含環(huán)境變量等),導(dǎo)出的時候記得勾選V2版本的格式,也是官方建議
一鍵運行測試用例:你可以選擇你要運行的collection或者里面的文件夾進(jìn)行運行
share:share一個link,然后將這個link分享給其他人,或者用于newman執(zhí)行測試
4.collections run

建議:
delay:不能為0,每個接口之間都應(yīng)該加入一個delay
數(shù)據(jù)文件:可以是json格式的,也可以是csv格式的,官方建議json,更快

5.newman
newman是一個命令行工具,可以用于將我們的接口測試用例在命令行運行并生成測試報告(測試報告多種多樣)
為什么要在命令行里面運行
可以在無界面的服務(wù)器上運行我們的測試用例
可以在CI持續(xù)集成系統(tǒng)上運行
運行準(zhǔn)備
導(dǎo)出collection
安裝nodejs和npm,可能安裝npm不好安裝,我們使用cnpm來進(jìn)行安裝,百度搜索一下cnpm 淘寶源
安裝newman(nodejs寫的一個小應(yīng)用)

newman可以生成多種測試報告
GIL reporter:控制臺輸出
json reporter:可以放到mongdb中做持久化
html reporter:方便發(fā)送郵件
junit reporter:可以無縫集成到j(luò)enkins,有一個插件可以把junit reporter自動解析,并放到j(luò)enkins里面,也就是可以直接在界面中使用了

# 運行postman生成的collection的url,使用env.json作為環(huán)境變量,globals.json作為全局變量,并使用外部的data.csv作為外部數(shù)據(jù),最后設(shè)置了接口請求超時時間為5s
newman run https://www.getpostman.com/collections/cb0cea0af1467c8008fb --environment env.json --iteration-data data.csv --globals globals.json
# 運行postman導(dǎo)出的collection的json文件,并生成多種測試報告
newman run c:\test1.json --reporters cli,html,json,junit --reporter-json-export jsonOut.json --reporter-junit-export xmlOut.xml --reporter-html-export htmlOut.html
6.集成到j(luò)enkins
首先,下載jenkins的war包,使用java -jar jenkins.war --httpPort=8080啟動,配置jenkins完成
第一步:新建job
第二步:添加構(gòu)建步驟,你自己決定輸入什么,我這里指定newman執(zhí)行某個文件件下的json文件,并以junit的報告形式輸出到當(dāng)前工作目錄

第三步:添加構(gòu)建后的操作并保存
講newman生成的junit格式的report整合進(jìn)jenkins的junit report插件中,可以更好的隊報告進(jìn)行展示

第四步:點擊手動構(gòu)建(當(dāng)然這里你可以根據(jù)項目需要設(shè)置自動構(gòu)建時間,比如每天晚上的12點鐘執(zhí)行構(gòu)建)

第五步:查看構(gòu)建結(jié)果

7.其他
get請求的參數(shù)怎么填寫:可以直接在url中構(gòu)建,也可以單獨點擊params進(jìn)行構(gòu)建
post方法傳遞json格式的數(shù)據(jù):首先設(shè)置headers,Content-Type = application/json,然后將json串寫入raw的body模式下
post方法傳遞form格式的數(shù)據(jù):首先設(shè)置headers:application/x-www-form-urlencoded,body選擇form-data或者x-www-form-urlencoded,至于是哪種,可以都試一下,肯定是其中之一
auth:常用的有basic auth和OAuth2.0,如果是basic auth,直接輸入用戶名和密碼就可以了,如果是OAuth2.0,有兩種方法,第一,找開發(fā)拿token,設(shè)置token,方法2,登錄的時候獲取token,然后每次訪問豆?jié){token放在headers里面就可以了
調(diào)試:postman中有一個叫postman console的工具,該工具可以在我們寫Script的時候使用,通過console.log("this is demo")輸出數(shù)據(jù)到console中
參考help文檔:https://www.getpostman.com/docs/