接口測試工具postman


一、 安裝

1. 免費官網鏈接:https://www.getpostman.com/postman,下載好后雙擊.exe程序安裝即可

2. 注意事項:建議安裝在非系統盤,即C盤以外的盤,路徑最好用全英文路徑

3. 打開chrome ->更多工具 ->拓展程序 ->加載本地已解壓的postman至chrome中

4. 打開postman,注冊並登錄,也可以跳過注冊頁,不登錄也可以直接使用

二 、postman使用

1.基本功能:

導入項目:https://www.getpostman.com/collections/c8f98a1120357e0d4a5a

環境變量url:http://postmanexample.bayes.cafe

1) Collections:在Postman中,Collection類似文件夾,可以把同一個項目的請求放在一個Collection里方便管理和分享,Collection里面也可以再建文件夾。如果做API文檔的話,可以每個API對應一條請求,如果要把各種輸入都測到的話,就需要每條測試一條請求了。

2) 上面的黑字注冊是請求的名字,如果有Request description的話會顯示在這下面。下面的藍字是保存起來的請求結果,點擊可以載入某次請求的參數和返回值。保存請求的按鈕在15

3) 選擇HTTP Method(get /post /put /delete...)

4) 請求URL,兩層大括號表示這是一個環境變量,可以在16的位置選擇當前的environment,環境變量就會被替換成該environment里variable的值

5) 點擊可以設置URL參數的key和value

6) 點擊發送請求

7) 點擊保存請求到Collection

8) 設置鑒權參數,可以用OAuth之類的

9) 自定義HTTP Header,有些因為Chrome原因不能自定義的需要另外裝一個插件Interceptor,在16上面一行的衛星那里

10)設置Request body,13那里顯示的就是body的內容

11) 在發起請求之前執行的腳本,例如request body里的那兩個random變量,就是每次請求之前臨時生成的。

12) 在收到response之后執行的測試,測試的結果會顯示在17的位置

13) 有四種形式可以選擇,form-data主要用於上傳文件。x-www-form-urlencoded是表單常用的格式。raw可以用來上傳JSON數據

14) 返回數據的格式,Pretty可以看到格式化后的JSON,Raw就是未經處理的數據,Preview可以預覽HTML頁面

15) 點擊這里把請求保存到2的位置

16) 設置environment variables和global variables,點擊右邊的x可以快速查看當前的變量。(一個項目如果需要測試好幾個環境的情況,就可以對不同環境分別設置對應的環境變量)

17) 測試執行的結果,一共幾個測試,通過幾個。

2.測試工具:

測試工具主要包括三部分,在發起請求之前運行的Pre-request,在收到應答之后運行的Test,和一次運行所有請求的Collection Runner

 1)pre-request

Pre-request的編寫界面如下:

Pre-request和Test用的語言都是JavaScript,Postman在一個沙盒里執行代碼,提供給用戶的庫和函數可以在這里查看。而常用的功能都可以通過右邊的Code Snippets實現,點擊就可以插入到代碼區域

可以看到Pre-request里常用的功能有四種,清除全局變量、清除環境變量、設置全局變量以及設置環境變量。

①這條請求的pre-request就是在注冊之前生成一個字符串作為隨機用戶名

postman.setEnvironmentVariable("random_username", ("0000" + (Math.random()*Math.pow(36,4) << 0).toString(36)).slice(-4));

②其他用法還包括在發起請求之前獲取當前的時間戳放在參數里:

postman.setEnvironmentVariable("unixtime_now",Math.round(new Date().getTime()/1000));

2)Test

Test的編寫界面如下:

① 和Pre-request相比,Test的Snippets就豐富多了,例如檢查狀態碼、檢查響應串、驗證JSON、檢查header、限制應答時間

② 如果需要將服務器響應的數據保存下來,用在后面的請求里,也需要在這一步做

③ 在圖中的Test里,我首先檢查了狀態碼為200,然后解析返回的JSON,把環境變量里的token設為JSON里的token

3)Collection Runner

當編寫了很多測試之后,就可以使用Collection Runner來自動運行整個Collection了,入口就在主界面最上面一行的Runner。選好Collection、Environment,如果有需要還可以載入JSON和CSV作為數據源。點擊Start Test Run,就可以看到結果了。

這里可以看到一共發起了5次請求,每個請求各有一個Test,全部Pass。(雖然最后一個請求的返回是403,但是這個請求的期望返回值就是403,所以也是Pass的)

 三、示例

流程:用戶可以注冊並登錄,然后在系統里新建充值卡,並給這張卡充值

1. 注冊

生成一個隨機字符串作為用戶名和昵稱

postman.setEnvironmentVariable("random_username", ("0000" + (Math.random()*Math.pow(36,4) << 0).toString(36)).slice(-4));

發起請求

POST /index.php/users HTTP/1.1 Host: postmanexample.bayes.cafe Cache-Control: no-cache Postman-Token: 76791813-aac2-71fb-cad4-3e737f37c4d0 Content-Type: application/x-www-form-urlencoded username=2mjk&password=123456&nickname=2mjk

運行測試、檢查結果

tests["Status code is 201"] = responseCode.code === 201;

2. 登錄

直接用剛才生成的環境變量發起請求

POST /index.php/authentication HTTP/1.1 Host: postmanexample.bayes.cafe Cache-Control: no-cache Postman-Token: aac7d0ac-e0e3-ecf2-39da-b8dca672e3d7 Content-Type: application/x-www-form-urlencoded username=2mjk&password=123456

運行測試、檢查結果,並將返回的token記錄下來

tests["Status code is 200"] = responseCode.code === 200; var data = JSON.parse(responseBody); postman.setEnvironmentVariable("token", data.token);

3. 添加一張卡

先生成一個卡號和卡名

postman.setEnvironmentVariable("random_cardno", Math.round(Math.random()*9999999)); postman.setEnvironmentVariable("random_cardname", ("0000" + (Math.random()*Math.pow(36,4) << 0).toString(36)).slice(-4));

然后發起請求,這里調用了剛才獲取到的Token,放在header的自定義字段里作為鑒權(SAE不能用Authorization這個字段,不清楚原因)

POST /index.php/cards HTTP/1.1 Host: postmanexample.bayes.cafe X-Authorization: d4c4a0b7b36c73e7a13b7e24a596093b Cache-Control: no-cache Postman-Token: d44d573f-f17a-366c-2cd7-1d5b8b709233 Content-Type: application/x-www-form-urlencoded cardno=1385526&desc=2mo8

運行測試

tests["Status code is 200"] = responseCode.code === 200;

4. 查詢剛才生成的卡

發起請求,調用了剛才生成的卡號

GET /index.php/cards/1385526 HTTP/1.1 Host: postmanexample.bayes.cafe Cache-Control: no-cache Postman-Token: 1e5aca57-c3bb-7404-2791-c639cd60b5c8

運行驗證,和剛才生成的卡名對比,並記錄新卡的ID

var data = JSON.parse(responseBody); tests["check cardname"] = data.desc === environment.random_cardname; postman.setEnvironmentVariable("new_card_id", data.id);

5. 充值

發起請求,使用了剛才獲得的新卡ID

POST /index.php/deposit HTTP/1.1 Host: postmanexample.bayes.cafe X-Authorization: d4c4a0b7b36c73e7a13b7e24a596093b Cache-Control: no-cache Postman-Token: 388c95e0-b5ce-9bbf-5816-084db7523384 Content-Type: application/x-www-form-urlencoded cardid=1&amount=10

運行驗證(由於是新建的用戶,沒有余額,無法給卡片充值,故返回403 Forbidden)

tests["Status code is 403"] = responseCode.code === 403;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM