介紹:postman
相似工具: 命令行curl fiddler
下載地址:官網下載https://www.getpostman.com/
Postman是一款功能強大的網頁調試與發送網頁HTTP請求的Chrome插件
市場上有很多優秀的,完善的接口測試工具,比如SoapUI,Postman,JMeter、yapi等,能夠高效的幫助后端開發人員獨立進行接口測試。這里使用Postman接口測試工具,分別介紹如何對GET請求和POST請求進行接口測試。
Postman的操作環境
postman適用於不同的操作系統,Postman Mac、Windows X32、Windows X64、Linux系統,還支持postman 瀏覽器擴展程序、postman chrome應用程序等。
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 delete等請求方法
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,測試結果等
postman環境配置:
全局變量(Globals)
場景:以頁面顯示,需要在header中添加認證,那么每次請求都添加嗎?我們可以設置全局變量
設置變量名和value值
斷言
Postman的斷言功能在Test模塊中,比如要測試返回結果是否含有某一字符串,就需要在Test中編寫相應的代碼,Test中的代碼使用的是JavaScript語法。
我們先來了解下postman斷言的一些特點 ,具體如下
斷言編寫位置:Tests標簽
斷言所用語言:JavaScript
斷言執行順序:在響應體數據返回后執行 。
斷言執行結果查看:Test Results
在上面我們介紹到,編寫的斷言代碼是JavaScript,那如果不會寫怎么辦 ? 不用擔心,因為postman已經給我們內置了一些常用的斷言 。用的時候,只需從右側點擊其中一個斷言,就會在文本框中自動生成對應斷言代碼塊 。
postman自帶Tests函數:
Postman提供了參考代碼供我們選擇即可,主要斷言代碼有如下幾種:
# 斷言狀態碼是否為200,在斷言中此種斷言價值不高
pm.test("Status code is 200", function () { pm.response.to.have.status(200); });
# 斷言響應文本中是否包含某個數據串,常用
pm.test("Body matches string", function () { pm.expect(pm.response.text()).to.include("string_you_want_to_search"); });
# 使用JsonPath斷言
pm.test("Your test name", function () { var jsonData = pm.response.json(); pm.expect(jsonData.value).to.eql(100); });
# 檢查響應正文中是否包含某個子串
pm.test("Body is correct", function () { pm.response.to.have.body("response_body_string"); });
# 響應信息包含列表中其中某一個
pm.test("Successful POST request", function () { pm.expect(pm.response.code).to.be.oneOf([201,202]); });
# 將xml響應轉為json
var jsonObject = xml2Json(responseBody);
3.保存接口配置
待整個接口都調試完畢后,記得點擊 Save 去保存接口信息:
去保存當前 API 接口,然后需要填寫相關的接口信息:
l Request Name: 請求的名字
我一般習慣用保存為 接口的最后的字段名,比如
l Request Description: 接口的描述
最好寫上該接口的要實現的基本功能和相關注意事項
支持 Markdown 語法
Select a collection or folder to save: 選擇要保存到哪個分組(或文件夾)
往往保存到某個 API 接口到所屬的該項目名的分組
功能說明:
All Collections : 列出所有集合,可以選擇一個集合運行
Environment : 環境列表 ,當選擇的集合使用到了環境,這里就必須選擇 ,反之,可不選。
Iterations :迭代次數,這里面更多的使用場景讀取外部文件進行參數化 。當然一個集合也可以重復運行多次。
Delay :請求之間的間隔時間,默認為0也就是沒有間隔 。
Data : 讀取數據文件進行參數化的選項 。
Save Seponses : 保存響應數據,默認情況不開啟 ,但是當集合中有請求報錯時,打開此選項 。就可以在Run Result查看每個請求的響應結果 ,這樣有助於調試錯誤。
keep variable values : 持久變量,默認為開啟狀態,開啟后,前面請求的變量設置的值,后面有請求修改此值,會覆蓋此值 。
run collection without using stord cookies : 不使用cookies保存的值運行
Save cookies after collection run : 集合中的請求在執行期間創建/更新cookie 。打開此選項,可以將cookie保存到cookie管理器,從而覆蓋任何現有的cookie。
Recent RUN :右側是保存了最近運行的結果,可以點擊打開查看 。也可以下載 和刪除 。
Import/Export :可以將運行結果導出后再導入結果進行查看 。