Postman簡介
Postman是一個可擴展的API開發(fā)和測試協(xié)同平臺工具,可以快速集成到CI/CD管道中。旨在簡化測試和開發(fā)中的API工作流。
Postman 工具有 Chrome 擴展和獨立客戶端,推薦安裝獨立客戶端。
Postman 有個 workspace 的概念,workspace 分 personal 和 team 類型。Personal workspace 只能自己查看的 API,Team workspace 可添加成員和設(shè)置成員權(quán)限,成員之間可共同管理 API。
當(dāng)然我個人使用一般是不登錄的,因為登錄之后會自動將你的測試歷史數(shù)據(jù)保存到賬戶里,你可以登陸網(wǎng)頁端進(jìn)行查看。
因為API的很多數(shù)據(jù)是很敏感的,有的含有Token,或者就是一些私密信息,雖然Postman自己也強調(diào)說這樣很安全,不會私下窺探用戶的信息之類的,但是呢還是至少做一點有效的防范吧,自己不上傳,因為網(wǎng)絡(luò)并沒有絕對的安全。
所以我每次測試之后會將數(shù)據(jù)(Case)保存在本地,下次使用或者換設(shè)備的情況下將數(shù)據(jù)拷貝過來又可以繼續(xù)使用了。
為什么選擇Postman
如今,Postman的開發(fā)者已超過1000萬(來自官網(wǎng)),選擇使用Postman的原因如下:
簡單易用 - 要使用Postman,你只需登錄自己的賬戶,只要在電腦上安裝了Postman應(yīng)用程序,就可以方便地隨時隨地訪問文件。
使用集合 - Postman允許用戶為他們的API調(diào)用創(chuàng)建集合。每個集合可以創(chuàng)建子文件夾和多個請求。這有助于組織測試結(jié)構(gòu)。
多人協(xié)作 - 可以導(dǎo)入或?qū)С黾虾铜h(huán)境,從而方便共享文件。直接使用鏈接還可以用于共享集合。
創(chuàng)建環(huán)境 - 創(chuàng)建多個環(huán)境有助于減少測試重復(fù)(DEV/QA/STG/UAT/PROD),因為可以為不同的環(huán)境使用相同的集合。這是參數(shù)化發(fā)生的地方,將在后續(xù)介紹。
創(chuàng)建測試 - 測試檢查點(如驗證HTTP響應(yīng)狀態(tài)是否成功)可以添加到每個API調(diào)用中,這有助于確保測試覆蓋率。
自動化測試 - 通過使用集合Runner或Newman,可以在多個迭代中運行測試,節(jié)省了重復(fù)測試的時間。
調(diào)試 - Postman控制臺有助于檢查已檢索到的數(shù)據(jù),從而易于調(diào)試測試。
持續(xù)集成——通過其支持持續(xù)集成的能力,可以維護(hù)開發(fā)實踐。
如何下載安裝Postman?
官網(wǎng)主頁:https://www.postman.com/downloads/, 下載所需版本進(jìn)行安裝即可。
?現(xiàn)在基本都是win10的系統(tǒng),肯定下載64的
?傻瓜式一鍵安裝后:
?雙擊打開:(血輪眼)別急,等一會
?不是最新版本,所以有更新提示,不用搭理。
?如果是空的,則為:
?
如何使用Postman
下圖是Postman的工作區(qū)間,各個模塊功能的介紹如下:
1、New,在這里創(chuàng)建新的請求、集合或環(huán)境;還可以創(chuàng)建更高級的文檔、Mock Server 和 Monitor以及API。
2、Import,這用于導(dǎo)入集合或環(huán)境。有一些選項,例如從文件,文件夾導(dǎo)入,鏈接或粘貼原始文本。
3、Runner,可以通過Collection Runner執(zhí)行自動化測試。后續(xù)介紹。
4、Open New,打開一個新的標(biāo)簽,Postman窗口或Runner窗口。
5、My Workspace - 可以單獨或以團(tuán)隊的形式創(chuàng)建新的工作區(qū)。
6、Invite - 通過邀請團(tuán)隊成員在工作空間上進(jìn)行協(xié)同工作。
7、History - 所有秦秋的歷史記錄,這樣可以很容易地跟蹤你所做的操作。
8、Collections - 通過創(chuàng)建集合來組織你的測試套件。每個集合可能有子文件夾和多個請求。請求或文件夾也可以被復(fù)制。
9、Request tab - 這將顯示您正在處理的請求的標(biāo)題。默認(rèn)對于沒有標(biāo)題的請求會顯示“Untitled Request”。
10、HTTP Request - 單擊它將顯示不同請求的下拉列表,例如 GET, POST, COPY, DELETE, etc. 在測試中,最常用的請求是GET和POST。
11、Request URL - 也稱為端點,顯示API的URL。.
12、Save - 如果對請求進(jìn)行了更改,必須單擊save,這樣新更改才不會丟失或覆蓋。
13、Params - 在這里將編寫請求所需的參數(shù),比如Key - Value。
14、Authorization - 為了訪問api,需要適當(dāng)?shù)氖跈?quán)。它可以是Username、Password、Token等形式。
15、Headers - 請求頭信息
16、Body - 請求體信息,一般在POST中才會使用到
17、Pre-request Script - 請求之前 先執(zhí)行腳本,使用設(shè)置環(huán)境的預(yù)請求腳本來確保在正確的環(huán)境中運行測試。
18、Tests - 這些腳本是在請求期間執(zhí)行的。進(jìn)行測試非常重要,因為它設(shè)置檢查點來驗證響應(yīng)狀態(tài)是否正常、檢索的數(shù)據(jù)是否符合預(yù)期以及其他測試。
19、Settings - 最新版本的有設(shè)置,一般用不到。
數(shù)據(jù)顯示格式:(JSON)
?
如何處理GET請求
測試URL:
https://jsonplaceholder.typicode.com/users
在Postman的工作區(qū)中:
1、選擇HTTP請求方式為GET
2、在URL區(qū)域輸入 鏈接
3、點擊 “Send”按鈕
4、你將看到下方返回200狀態(tài)碼
5、在正文中應(yīng)該有10個用戶結(jié)果,表明您的測試已經(jīng)成功運行。
?
如何處理POST請求1
訪問地址:
https://jsonplaceholder.typicode.com/users
?
如何處理POST請求2
Post請求與Get請求不同,因為存在用戶向端點添加數(shù)據(jù)的數(shù)據(jù)操作。使用之前GET 請求中相同數(shù)據(jù),現(xiàn)在添加我們自己的用戶。
創(chuàng)建一個新請求
1、選擇HTTP請求方式為POST
2、在URL區(qū)域輸入 鏈接:
https://jsonplaceholder.typicode.com/users
3、切換到Body選項
1、選中raw選項
2、選擇JSON
復(fù)制前面GET請求返回的json內(nèi)容的第一節(jié)
更改id為99,更改name以及uesrname和email
[{"id": 99,"name": "liyang","username": "zhongyi","email": "liyang@163.com","address": {"street": "Kulas Light","suite": "Apt. 556","city": "Gwenborough","zipcode": "92998-3874","geo": {"lat": "-37.3159","lng": "81.1496"}},"phone": "1-770-736-8031 x56442","website": "hildegard.org","company": {"name": "Romaguera-Crona","catchPhrase": "Multi-layered client-server neural-net","bs": "harness real-time e-markets"}},{"id": 2,"name": "Ervin Howell","username": "Antonette","email": "Shanna@melissa.tv","address": {"street": "Victor Plains","suite": "Suite 879","city": "Wisokyburgh","zipcode": "90566-7771","geo": {"lat": "-43.9509","lng": "-34.4618"}},"phone": "010-692-6593 x09125","website": "anastasia.net","company": {"name": "Deckow-Crist","catchPhrase": "Proactive didactic contingency","bs": "synergize scalable supply-chains"}},{"id": 3,"name": "Clementine Bauch","username": "Samantha","email": "Nathan@yesenia.net","address": {"street": "Douglas Extension","suite": "Suite 847","city": "McKenziehaven","zipcode": "59590-4157","geo": {"lat": "-68.6102","lng": "-47.0653"}},"phone": "1-463-123-4447","website": "ramiro.info","company": {"name": "Romaguera-Jacobson","catchPhrase": "Face to face bifurcated interface","bs": "e-enable strategic applications"}},{"id": 4,"name": "Patricia Lebsack","username": "Karianne","email": "Julianne.OConner@kory.org","address": {"street": "Hoeger Mall","suite": "Apt. 692","city": "South Elvis","zipcode": "53919-4257","geo": {"lat": "29.4572","lng": "-164.2990"}},"phone": "493-170-9623 x156","website": "kale.biz","company": {"name": "Robel-Corkery","catchPhrase": "Multi-tiered zero tolerance productivity","bs": "transition cutting-edge web services"}},{"id": 5,"name": "Chelsey Dietrich","username": "Kamren","email": "Lucio_Hettinger@annie.ca","address": {"street": "Skiles Walks","suite": "Suite 351","city": "Roscoeview","zipcode": "33263","geo": {"lat": "-31.8129","lng": "62.5342"}},"phone": "(254)954-1289","website": "demarco.info","company": {"name": "Keebler LLC","catchPhrase": "User-centric fault-tolerant solution","bs": "revolutionize end-to-end systems"}},{"id": 6,"name": "Mrs. Dennis Schulist","username": "Leopoldo_Corkery","email": "Karley_Dach@jasper.info","address": {"street": "Norberto Crossing","suite": "Apt. 950","city": "South Christy","zipcode": "23505-1337","geo": {"lat": "-71.4197","lng": "71.7478"}},"phone": "1-477-935-8478 x6430","website": "ola.org","company": {"name": "Considine-Lockman","catchPhrase": "Synchronised bottom-line interface","bs": "e-enable innovative applications"}},{"id": 7,"name": "Kurtis Weissnat","username": "Elwyn.Skiles","email": "Telly.Hoeger@billy.biz","address": {"street": "Rex Trail","suite": "Suite 280","city": "Howemouth","zipcode": "58804-1099","geo": {"lat": "24.8918","lng": "21.8984"}},"phone": "210.067.6132","website": "elvis.io","company": {"name": "Johns Group","catchPhrase": "Configurable multimedia task-force","bs": "generate enterprise e-tailers"}},{"id": 8,"name": "Nicholas Runolfsdottir V","username": "Maxime_Nienow","email": "Sherwood@rosamond.me","address": {"street": "Ellsworth Summit","suite": "Suite 729","city": "Aliyaview","zipcode": "45169","geo": {"lat": "-14.3990","lng": "-120.7677"}},"phone": "586.493.6943 x140","website": "jacynthe.com","company": {"name": "Abernathy Group","catchPhrase": "Implemented secondary concept","bs": "e-enable extensible e-tailers"}},{"id": 9,"name": "Glenna Reichert","username": "Delphine","email": "Chaim_McDermott@dana.io","address": {"street": "Dayna Park","suite": "Suite 449","city": "Bartholomebury","zipcode": "76495-3109","geo": {"lat": "24.6463","lng": "-168.8889"}},"phone": "(775)976-6794 x41206","website": "conrad.com","company": {"name": "Yost and Sons","catchPhrase": "Switchable contextually-based project","bs": "aggregate real-time technologies"}},{"id": 10,"name": "Clementina DuBuque","username": "Moriah.Stanton","email": "Rey.Padberg@karina.biz","address": {"street": "Kattie Turnpike","suite": "Suite 198","city": "Lebsackbury","zipcode": "31428-2261","geo": {"lat": "-38.2386","lng": "57.2232"}},"phone": "024-648-3804","website": "ambrose.net","company": {"name": "Hoeger LLC","catchPhrase": "Centralized empowering task-force","bs": "target end-to-end models"}}
]
?
常用的Get與Post訪問就介紹到這里了。
?
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的Postman(使用指南)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。