Postman之API測試使用全指南

Postman

Postman是一個可擴展的API開發和測試協同平臺工具,能夠快速集成到CI/CD管道中。旨在簡化測試和開發中的API工做流。node

Postman 工具備 Chrome 擴展和獨立客戶端,推薦安裝獨立客戶端。web

Postman 有個 workspace 的概念,workspace 分 personal 和 team 類型。Personal workspace 只能本身查看的 API,Team workspace 可添加成員和設置成員權限,成員之間可共同管理 API。npm

固然我我的使用通常是不登陸的,由於登陸以後會自動將你的測試歷史數據保存到帳戶裏,你能夠登錄網頁端進行查看。
由於API的不少數據是很敏感的,有的含有Token,或者就是一些私密信息,雖然Postman本身也強調說這樣很安全,不會私下窺探用戶的信息之類的,可是呢仍是至少作一點有效的防範吧,本身不上傳,由於網絡並無絕對的安全。
因此我每次測試以後會將數據(Case)保存在本地,下次使用或者換設備的狀況下將數據拷貝過來又能夠繼續使用了。json

下面正式開始介紹如何使用Postman吧。api

爲何選擇Postman?

現在,Postman的開發者已超過1000萬(來自官網),選擇使用Postman的緣由以下:
簡單易用 - 要使用Postman,你只需登陸本身的帳戶,只要在電腦上安裝了Postman應用程序,就能夠方便地隨時隨地訪問文件。
使用集合 - Postman容許用戶爲他們的API調用建立集合。每一個集合能夠建立子文件夾和多個請求。這有助於組織測試結構。
多人協做 - 能夠導入或導出集合和環境,從而方便共享文件。直接使用連接還能夠用於共享集合。
建立環境 - 建立多個環境有助於減小測試重複(DEV/QA/STG/UAT/PROD),由於能夠爲不一樣的環境使用相同的集合。這是參數化發生的地方,將在後續介紹。
建立測試 - 測試檢查點(如驗證HTTP響應狀態是否成功)能夠添加到每一個API調用中,這有助於確保測試覆蓋率。
自動化測試 - 經過使用集合Runner或Newman,能夠在多個迭代中運行測試,節省了重複測試的時間。
調試 - Postman控制檯有助於檢查已檢索到的數據,從而易於調試測試。
持續集成——經過其支持持續集成的能力,能夠維護開發實踐。安全

如何下載安裝Postman?

Step 1) 官網主頁:https://www.postman.com/downloads/, 下載所需版本進行安裝便可。
在這裏插入圖片描述
Step2)安裝完成以後會要求你必須登陸才能使用,沒有帳號能夠進行註冊,註冊是免費的。(也可以使用Google帳號,不過基本不能登陸,你懂的)bash

Step3)在Workspace選擇你要使用的工具並點擊「Save My Preferences」保存。
在這裏插入圖片描述
Step4)你將看到啓動後的頁面以下
在這裏插入圖片描述服務器

如何使用Postman?

下圖是Postman的工做區間,各個模塊功能的介紹以下:網絡

一、New,在這裏建立新的請求、集合或環境;還能夠建立更高級的文檔、Mock Server 和 Monitor以及API。
二、Import,這用於導入集合或環境。有一些選項,例如從文件,文件夾導入,連接或粘貼原始文本。
三、Runner,能夠經過Collection Runner執行自動化測試。後續介紹。
四、Open New,打開一個新的標籤,Postman窗口或Runner窗口。
五、My Workspace - 能夠單獨或以團隊的形式建立新的工做區。
六、Invite - 經過邀請團隊成員在工做空間上進行協同工做。
七、History - 全部秦秋的歷史記錄,這樣能夠很容易地跟蹤你所作的操做。
八、Collections - 經過建立集合來組織你的測試套件。每一個集合可能有子文件夾和多個請求。請求或文件夾也能夠被複制。
九、Request tab - 這將顯示您正在處理的請求的標題。默認對於沒有標題的請求會顯示「Untitled Request」。
十、HTTP Request - 單擊它將顯示不一樣請求的下拉列表,例如 GET, POST, COPY, DELETE, etc. 在測試中,最經常使用的請求是GET和POST。
十一、Request URL - 也稱爲端點,顯示API的URL。.
十二、Save - 若是對請求進行了更改,必須單擊save,這樣新更改纔不會丟失或覆蓋。
1三、Params - 在這裏將編寫請求所需的參數,好比Key - Value。
1四、Authorization - 爲了訪問api,須要適當的受權。它能夠是Username、Password、Token等形式。
1五、Headers - 請求頭信息
1六、Body - 請求體信息,通常在POST中才會使用到
1七、Pre-request Script - 請求以前 先執行腳本,使用設置環境的預請求腳原本確保在正確的環境中運行測試。
1八、Tests - 這些腳本是在請求期間執行的。進行測試很是重要,由於它設置檢查點來驗證響應狀態是否正常、檢索的數據是否符合預期以及其餘測試。
1九、Settings - 最新版本的有設置,通常用不到。
在這裏插入圖片描述工具

如何處理GET請求

Get請求用於從指定的URL獲取信息,不會對端點進行任何更改。
在這裏咱們使用以下的URL做爲演示:

https://jsonplaceholder.typicode.com/users

在Postman的工做區中:
一、選擇HTTP請求方式爲GET
二、在URL區域輸入 連接
三、點擊 「Send」按鈕
四、你將看到下方返回200狀態碼
五、在正文中應該有10個用戶結果,代表您的測試已經成功運行。
在這裏插入圖片描述

注意:在某些狀況下,Get請求失敗可能因爲URL無效或須要身份驗證。

如何處理POST請求

Post請求與Get請求不一樣,由於存在用戶向端點添加數據的數據操做。使用以前GET 請求中相同數據,如今添加咱們本身的用戶。
Step 1)建立一個新請求
在這裏插入圖片描述
Step 2 )在新請求中
一、選擇HTTP請求方式爲GET
二、在URL區域輸入 連接:https://jsonplaceholder.typicode.com/users
三、切換到Body選項
在這裏插入圖片描述
Step 3) Body選項
一、選中raw選項
二、選擇JSON
在這裏插入圖片描述
Step 4) 複製前面GET請求返回的json內容的第一節
更改id爲11,更改name以及uesrname和email

[
    {
        "id": 11,
        "name": "Krishna Rungta",
        "username": "Bret",
        "email": "Sincere@april.biz
	",
        "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"
        }
    }
]

在這裏插入圖片描述

注意: 檢查Body裏用到的JSON格式很重要,以確保數據正確。
檢測的工具好比:https://jsonformatter.curiousconcept.com/

在這裏插入圖片描述
Step 5 )發送請求
一、完成上述的信息輸入,點擊Send按鈕
二、Status:應該是201,顯示爲建立成功
三、在Body裏返回數據
在這裏插入圖片描述

如何將請求參數化

數據參數化是Postman最有用的特徵之一。你能夠將使用到的變量進行參數化,而不是使用不一樣的數據建立相同的請求,這樣會事半功倍,簡潔明瞭。
這些數據能夠來自數據文件環境變量。參數化有助於避免重複相同的測試,可用於自動化迭代測試。

參數經過使用雙花括號建立:{{sample}}
好比下面的請求:
在這裏插入圖片描述
接下來建立一個參數化get請求:
Step 1) 建立一個參數化get請求
一、將HTTP請求設置爲GET
二、輸入URL: https://jsonplaceholder.typicode.com/users;將連接的域名部分替換爲參數,例如{{url}}。請求url如今應該是{{url}}/users。
三、點擊Send按鈕。
應該沒有響應,由於咱們沒有設置參數的源,以下圖:
在這裏插入圖片描述
Step 2) 使用環境設置所需的參數
一、點擊眼睛圖標
二、單擊Edit將該變量設置爲可在全部集合中使用的全局環境。
在這裏插入圖片描述
Step 3) 變量--variable
一、將名稱設置爲url,該url爲https://jsonplaceholder.typicode.com
二、點擊保存按鈕
在這裏插入圖片描述
Step 4) 若是看到下面截圖的樣式,請單擊Close
在這裏插入圖片描述
Step 5 ) 回到你的Get請求頁面,而後單擊發送Send按鈕,Get請求應該就會返回結果了,以下圖:
在這裏插入圖片描述

注意:請確保全部的參數都有準確的源數據,無論是環境變量仍是數據文件,以免出錯。

如何建立Postman Tests

Postman Tests在請求中添加JavaScript代碼來協助驗證結果,如:成功或失敗狀態、預期結果的比較等等。
一般從pm.test開始。它能夠與斷言相比較,驗證其餘工具中可用的命令。
接下來建立一個包含Tests的請求:
Step 1) 建立一個Get請求
一、切換到Tests選項,右邊是代碼片斷選項。
二、從右邊的代碼片斷選項裏面選中 「Status code: Code is 200」
三、JS代碼就自動出如今窗口中
在這裏插入圖片描述
Step 2) 點擊發送請求按鈕。測試結果就顯示出來了,以下圖:
在這裏插入圖片描述
Step 3) 回到Tests選項卡,讓咱們添加另外一個測試。此次咱們將比較預期結果和實際結果。
在右邊的SNIPPETS區域選擇"Response body:JSON value check"選項,咱們將檢查Leanne Graham是否擁有userid 1。
在這裏插入圖片描述
Step 4)
一、將代碼中的「Your Test Name」替換爲「Check if user with id1 is Leanne Graham」,以便測試名稱確切描述咱們想測試的內容。
二、使用jsonData[0].name代替jsonData.value; 獲取路徑,在獲取結果以前檢查Body。由於Leanne Graham是userid 1,因此jsonData在第一個結果中,這個結果應該從0開始。若是你想得到第二個結果,那麼對後續結果使用jsonData[1] 便可。
三、在eql中,輸入「Leanne Graham」

pm.test("Check if user with id1 is Leanne Graham", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData[0].name).to.eql("Leanne Graham");
});

在這裏插入圖片描述
Step 5) 點擊發送請求,能夠看到你的請求以後測試結果中有兩項顯示測試經過。
在這裏插入圖片描述

注意:
有不一樣種類的測試能夠在Postman中建立。嘗試探索這個工具,看看哪些測試適合你實際測試。

如何建立測試集合

集合在組織測試套件中扮演着重要的角色。它能夠被導入和導出,使得在團隊之間共享集合變得很容易。在本教程中,咱們將學習如何建立和執行集合。

Step 1) 單擊頁面左上角的New按鈕,以下圖:
在這裏插入圖片描述
Step 2) 選擇Collection(集合). 建立collection窗口彈出,以下圖.
在這裏插入圖片描述
Step 3) 輸入所需的集合名稱和描述,而後單擊create。
如今已經建立了一個集合。
在這裏插入圖片描述
Step 4 ) 和前面的Get請求同樣,點擊保存。
在這裏插入圖片描述
Step5 )
一、選擇Postman 測試集合(Test Collection)。
二、點擊保存Postman Test Collection
在這裏插入圖片描述
Step 6) Postman test collection如今應該包含了一個請求,以下圖:
在這裏插入圖片描述
Step 7) 重複上述的Step4-5,繼續建立請求,這樣,測試集合就應該有2個請求了,以下圖。
在這裏插入圖片描述

如何使用Collection Runner 運行集合

有兩種方式來運行一個集合,即Collection Runner和Newman。
Collection Runner:
Step 1) 單擊頁面頂部導入按鈕旁邊的Runner按鈕,以下圖。
在這裏插入圖片描述
Step 2)Collection Runner頁面應該出現以下所示。如下是對各個字段的描述
在這裏插入圖片描述
Step 3) 作以下設置,運行你的測試集合

  • 選擇Postman測試集合-集合迭代次數爲3
  • 設置延遲爲2500毫秒
  • 點擊Start Run按鈕
    在這裏插入圖片描述
    Step 4) 單擊Run按鈕後將顯示Run結果頁。根據延遲的不一樣,你應該在測試執行的同時看到顯示的結果。

一、一旦測試完成,你就能夠看到測試狀態是經過仍是失敗,以及每一個迭代的結果。
二、你將看到Get請求的Pass狀態;
三、因爲咱們沒有任何Post測試,因此應該會出現請求沒有任何測試的消息。
在這裏插入圖片描述
能夠出在請求中進行測試是多麼重要,這樣你就能夠驗證HTTP請求狀態是否成功,以及是否建立或檢索了數據。

如何使用Newman運行集合

運行集合的另外一種方式是經過Newman。Newman和Collection Runner之間的主要區別以下:
一、Newman是Postman的替代品,因此須要單獨安裝Newman;
二、Newman使用命令行,而Collection Runner使用UI界面;
三、Newman能夠用於持續集成。

安裝Newman並運行Collection,步驟以下:
Step 1) 下載並安裝NodeJs: http://nodejs.org/download/
Step 2) 打開命令行窗口並輸入下面命令:

npm install -g newman

安裝後 以下圖:
在這裏插入圖片描述
Step 3 )
Newman安裝好以後,讓咱們回到Postman的workspace。在Collections框中,單擊三個點 ... 會出現新的選擇選項,可看到Export選項,以下圖:
在這裏插入圖片描述
Step 4 )
選擇導出集合,默認使用推薦的集合版本,好比此處是v2.1,而後單擊導出:
在這裏插入圖片描述

Step 5 ) 選擇你想要保存的地址以後點擊保存,這裏建議專門新建一個文件夾來存放你的Postman tests。
Step 6 ) 另外還須要導出咱們的環境(enviroment)。單擊全局環境下拉菜單旁邊的eye圖標,選擇JSON格式下載。選擇你想要的位置,而後單擊Save。最好將環境放在與Step5 導出的集合相同的文件夾中。
在這裏插入圖片描述

Step 7 ) 導出Environment 到集合文件夾後,如今回到命令行,將目錄更改成保存集合和環境的位置。

cd C:\Users\Asus\Desktop\Postman Tests

Step 8 ) 使用下面的命令運行你的測試集合:

newman run PostmanTestCollection.postman_collection.json -e Testing.postman_globals.json

運行的結果應該以下圖:
在這裏插入圖片描述

關於Newman的一些基礎指導以下:
一、只運行集合(若是沒有環境或測試數據文件依賴關係,則可使用此選項。)

newman run <collection name>

二、運行集合和環境(參數-e 是environment)

newman run <collection name> -e <environment name>

三、使用所需的編號運行集合的迭代。

newman run <collection name> -n <no.of iterations>

四、運行數據文件

newman run <collection name> --data <file name>  -n <no.of iterations> -e <environment name>

五、設置延遲時間。(這一點很重要,由於若是因爲請求在後臺服務器上,完成前一個請求時沒有延遲時間直接啓動下一個請求,測試可能會失敗。)

newman run <collection name> -d <delay time>
相關文章
相關標籤/搜索