postman接口測試工具簡介與安裝
Postman簡介:
Postman是一款功能強大的網頁調試與發(fā)送網頁HTTP請求的Chrome插件。
它提供功能強大的Web API&HTTP請求調試。它能夠發(fā)送任何類型的HTTP請求(GET,HEAD,POST,PUT..),附帶任何數量的參數+headers。
Postman功能:
主要用于模擬網絡請求包
快速創(chuàng)建請求
回放、管理請求
快速設置網絡代理
postman安裝:
1.在chrome應用商店搜索,應用商店地址:
FQ下載直接添加成google瀏覽器插件即可
2.客戶端安裝
建議選擇Mac/Windows app,比起Chrome app,下載不需要FQ,功能更強大
postman發(fā)送get請求
postman發(fā)送請求一:
頁面訪問請求(get方法)
該get請求為百度搜索請求,通過輸入不同的關鍵字返回不同的查詢結果
在Get后面的輸入框中輸入以上的鏈接,點擊send按鈕,即可獲取對應返回信息
請求參數修改:
輸入以上鏈接請求后,點擊Params后,將wd對應的值“海賊王”,修改為“草帽小子路飛”,點擊send,即可返回不同數據結果
postman發(fā)送get請求二:
微信公眾平臺是運營者通過公眾號為微信用戶提供資訊和服務的平臺,而公眾平臺開發(fā)接口則是提供服務的基礎,開發(fā)者在公眾平臺網站中創(chuàng)建公眾號、獲取接口權限后,可以通過閱讀本接口文檔來幫助開發(fā)。
地址為
引用微信公眾號接口:
1、首先進入開始開發(fā) → 接口測試號申請菜單,通過微信掃一掃生成測試號 → 掃碼后,生成appID和appsecret
2、 然后進入開發(fā)開發(fā) → 獲取接口調用憑據,有一個獲取access token的get請求接口
3、和上一個百度搜索請求一樣,錄入postman,然后查看返回結果
4、返回結果為:
{ |
|
"access_token": "28_gYHyQc8LA7cWan0mrNusMcyPw-JTDtbGEaR7g9yBTvh- JxEPKqC_bpYVPP8CLEk_l1VqJW7qjx1I5XnHZn2GKVg9tHHVzhkChv1T6h5ckWSdM2Ky59VCJnWSrTpJ_hCme8_vGupvJ9BxjhqQZQGcAEAQHX", |
|
"expires_in": 7200 |
|
} |
JSON數據詳解
JSON(JavaScript Object Notation),類似于XML,是一種數據交換格式,比如Java產生了一個數據想要給JavaScript,則除了利用XML外,還可以利用JSON;JSON相比XML的優(yōu)勢是表達起來很簡單。
官網:
在線校驗JSON結構的網站:
注意:JSON并不是一個文檔格式,沒有*.json的文檔,一般JSON格式的文檔存在txt中,而XML可以是一個標準。
JSON數據結構(兩種)
(1)Map,也稱為對象;{...}
簡單的說就是Java中的Map,名稱-值對的形式給出,名稱和值之間用“:”隔開,兩個Map之間用“,”隔開,一般表示形式如下:
{'key1':'value1','key2':'value2'}
(2)Array;[...]
就是普通意義上的數組,一般形式如下:
['arr1','arr2','arr3'];
value可以是如下取值:
string number object array true false null
總結:
(1)JSON的數據結構只有兩種
(2)可以嵌套表示,比如Array中可以嵌套Object等
(3)記?。篛bject是以{}表示,Array是以[]表示
json數據格式化方式以及視圖方式查看:
1、進入網站?
2、進入json相關 → json視圖,然后粘貼json數據即可
postman發(fā)送post請求
微信公眾平臺開發(fā)者文檔中有一個創(chuàng)建用戶分組的接口,該接口的請求類型為post。使用postman操作該接口請求:
1、進入用戶管理 → 用戶標簽管理 → 創(chuàng)建標簽,查看接口信息
2、錄入到postman中
說明:
1、該接口需要提交到服務器的數據json格式的數據。所以選擇post后,然后點擊body → raw → 下拉數據格式選擇JSON → 填入要求的json數據
2、該接口需要access_token參數,該參數為上一個獲取接口調用憑據的接口返回的,有效期可使用7200秒。
postman中post請求傳參說明
頁面訪問請求(Post方法):
form-data、x-www-form-urlencoded、raw、binary的區(qū)別
1.form-data
就是http請求中的multipart/form-data,它會將表單的數據處理為一條消息,以標簽為單元,用分隔符分開。
即可以上傳鍵值對,也可以上傳文件。
當上傳的字段是文件時,會有Content-Type來說明文件類型;
content-disposition,用來說明字段的一些信息;
由于有boundary隔離,所以multipart/form-data既可以上傳文件,也可以上傳鍵值對,它采用了鍵值對的方式,所以可以上傳多個文件。
2.x-www-form-urlencoded:
就是application/x-www-from-urlencoded,會將表單內的數據轉換為鍵值對
3.raw
可以上傳任意格式的文本,可以上傳text、json、xml、html等
4.binary
相當于Content-Type:application/octet-stream,從字面意思得知,只可以上傳二進制數據,通常用來上傳文件,由于沒有鍵值,所以,一次只能上傳一個文件。
multipart/form-data與x-www-form-urlencoded區(qū)別
multipart/form-data:既可以上傳文件等二進制數據,也可以上傳表單鍵值對,只是最后會轉化為一條信息。
x-www-form-urlencoded:只能上傳鍵值對,并且鍵值對都是間隔分開的。
Get方法和Post方法的區(qū)別
1.get是從服務器上獲取數據,post是向服務器傳送數據。
2.get安全性非常低,post安全性較高。但是執(zhí)行效率卻比post方法好。
3.post的安全性要比GET的安全性高。注意:這里所說的安全性和上面GET提到的“安全”不是同個概念。上面“安全”的含義僅僅是不作數據修改,而這里安全的含義是真正的Security的含義,比如:通過GET提交數據,用戶名和密碼將明文出現在URL上,因為
(1)登錄頁面有可能被瀏覽器緩存
(2)其他人查看瀏覽器的歷史記錄,那么別人就可以拿到你的賬號和密碼了,除此之外,使用GET提交數據還可能會造成Cross-site request forgery攻擊。
總結一下,Get是向服務器發(fā)索取數據的一種請求,而post是向服務器提交數據的一種請求,在FORM(表單)中,Method默認為“GET”,實質上,GET和POST只是發(fā)送機制不同,并不是一個取一個發(fā)!
postman設置請求的header
設置請求的header:指設置請求的頭部信息。當我們打開一個網頁時,瀏覽器要向網站服務器發(fā)送一個HTTP請求頭,然后網站服務器根據HTTP請求頭的內容生成當次請求的內容發(fā)送給瀏覽器。
例一:post請求要發(fā)送json數據,那么就必須在請求的header信息中包含鍵值對:Content-Type:application/json,發(fā)送json數據時,postman會自動生成該頭部信息
例二:用postman客戶端發(fā)送之前的百度搜索請求時,由于百度網站設置了必須是瀏覽器訪問才返回正確的搜索數據,這個時候就需要通過添加User-Agent頭部信息偽造瀏覽器發(fā)送數據給服務器。
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0 |
postman設置請求的header如下圖所示:
一般情況下,要設置header,可以通過fiddler抓包后去獲取,這樣操作非常方便。
postman查看響應結果
Body有三種視圖:Pretty,Raw和Preview。
- pretty模式將JSON或XML響應格式化,使他們更容易被查看。Pretty模式中鏈接被高亮顯示,點擊它們可以在postman中加載一個使用該url的get請求。
- Raw視圖只是一個顯示了響應的body的大文本區(qū)域,它可以幫助你判斷你的響應是不是被壓縮的。
- Preview選項卡在內聯(lián)沙箱框架中呈現響應。一些Web框架默認返回HTML錯誤,這時,Preview模式就非常有用了。由于內聯(lián)沙箱框架的限制,JavaScript和圖像在內聯(lián)框架中是被禁用的。如果你的API端點返回一個圖像,Postman會自動檢測并呈現它。對于二進制響應類型,你應該選擇“Send and download”,這將讓你保存響應到你的硬盤上,之后你就可以用適當地查看器來查看它。這樣你就可以靈活地測試音頻、PDF、zip文件或API給你的任何文件。
postman查看響應結果
- Headers
在Header選項卡中,headers顯示為key/value對。光標懸停header名時則會顯示根據HTTP規(guī)范對header的描述。如果你正在發(fā)送一個HEAD請求,Postman會默認顯示Headers選項卡。 - Cookies
Postman v0.8x以上版本可以顯示瀏覽器cookies,就像它與瀏覽器共享相同的環(huán)境一樣。對于本地應用,你需要啟用Interceptor,然后你就可以在響應部分的Cookies選項卡中查看響應的cookies。 - Tests
Tests為執(zhí)行斷言后的測試結果
postman設置斷言
需要對發(fā)送請求后返回的結果是否正確做驗證,在postman中通過tests頁簽做請求的驗證,也稱為斷言。
以百度搜索為例:
1、進入tests頁簽
2、點擊右側的“Response body:Contains string”,腳本編輯框中會顯示出驗證的具體腳本:
pm.test("Body matches string", function () { |
|
pm.expect(pm.response.text()).to.include("string_you_want_to_search"); |
|
}); |
修改"string_you_want_to_search"為"",完成斷言的編寫
3、點擊send按鈕,重新發(fā)送請求,查看測試結果。
postman斷言是JavaScript語言編寫的,在postman客戶端的test區(qū)域編寫即可,斷言會在請求返回之后,運行,并根據斷言的pass\fail情況體現在最終測試結果中。
常用斷言如下:
1.檢查響應中包含string → Response body:Is equal to a string
pm.test("Body matches string", function () { |
|
pm.expect(pm.response.text()).to.include("string_you_want_to_search"); |
|
}); |
2.檢查JSON某字段值 → Response bidy:JSON value check
pm.test("Your test name", function () { |
|
var jsonData = pm.response.json(); |
|
pm.expect(jsonData.value).to.eql(100); |
|
}); |
3.檢查響應body中等于指定string → Response body:Is equal to a string
pm.test("Body is correct", function () { |
|
pm.response.to.have.body("response_body_string"); |
|
}); |
4.檢查Content-Type是否包含在header返回 → Response headers:Content-Type header check
pm.test("Content-Type is present", function () { |
|
pm.response.to.have.header("Content-Type"); |
|
}); |
5.檢查請求耗時時間小于200ms → Response time is less than 200ms
pm.test("Response time is less than 200ms", function () { |
|
pm.expect(pm.response.responseTime).to.be.below(200); |
|
}); |
6.檢查Code name包含指定string → status code:code name has string
pm.test("Status code name has string", function () { |
|
pm.response.to.have.status("Created"); |
|
}); |
7.檢查成功post的請求status code → status code:Successful POST request
pm.test("Successful POST request", function () { |
|
pm.expect(pm.response.code).to.be.oneOf([201,202]); |
|
}); |
postman管理請求
在做接口測試過程中,我們所要測試的接口不止一個,postman提供了持久化管理請求的功能,把單個接口的測試全部通過項目管理起來。
1、進入postman的Collections頁簽,點擊 + New Collection 新增一個Collection(可以當成項目)
2、新增后,再點擊Collection中的“...”,然后點擊“Add Folder”,新建一個文件夾(可以當成模塊)
3、點擊請求頁面sends按鈕旁邊的Save按鈕,在彈出的對話框中選擇剛新建立的項目,修改該接口的名稱,然后點擊save按鈕即可。
postman設置環(huán)境變量
環(huán)境變量:在公司中,一般會存在開發(fā)環(huán)境、測試環(huán)境、線上環(huán)境等,如果需要在不同的環(huán)境下切換做接口測試,顯然我們需要把所有接口的域名進行反復修改,如果接口測試用例較多,那么修改會非常費力,postman可直接通過切換環(huán)境來實現多個環(huán)境中的參數切換。
環(huán)境請求地址切換:
1、點擊右上角設置圖標,選擇Manage Environments → Add,在頁面中設置環(huán)境信息:Environment(開發(fā)) → key(url) → value(api.weixin.qq.com),點擊ADD
2、添加測試環(huán)境:Environment(測試) → key(URL) → value(127.0.0.1),點擊ADD
3、然后在休要使用環(huán)境變量的地方使用{{URL}}替代靜態(tài)的固定值。
4、設置好后,在左上角的下拉框可以下拉來切換環(huán)境。
全局變量
把公共參數可以通過postman設置全局變量來實現,比如端口號,https協(xié)議的端口號是433,我們可以做成一個全局變量。
1、右擊右上角設置圖標,選擇Manage Environments → Add,點擊Globals進入全局變量管理界面
2、添加全局變量:key(PORT) → Value(433),點擊ADD
3、然后在休要使用環(huán)境變量的地方使用{{PORT}}替代靜態(tài)的固定值。
postman持久化運行Collection Runner
運行Collections:postman允許你運行collection,你可以運行任意的次數。最后會給出一個整體運行的結果。會保存每一次運行的結果,提供給你比較每一次運行結果的不同。
點擊文件夾選項中的“Run”(或postman主頁中的Runner),會彈出Collectioin Runner運行測試窗口
postman導入導出接口項目
- 分享接口項目:
Share鏈接:點擊Collection的'...'內的Share - 導出接口項目
Share文件:點擊Collection的"Download",會下載一個名為"*.json.postman_collection"(此文件可導入postman中)
總結:
感謝每一個認真閱讀我文章的人!??!
?我個人整理了我這幾年軟件測試生涯整理的一些技術資料,包含:電子書,簡歷模塊,各種工作模板,面試寶典,自學項目等。歡迎大家點擊下方名片免費領取,千萬不要錯過哦。
文章來源:http://www.zghlxwxcb.cn/news/detail-647755.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-647755.html
到了這里,關于postman接口測試工具的常規(guī)使用的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!