
快速掌握Postman實作接口測試
Postman簡介
Postman是谷歌開發的一款網頁調試和接口測試工具,能夠發送任何類型的http請求,支援GET/PUT/POST/DELETE等方法。Postman非常簡單易用,可以直接填寫URL,header,body等就可以發送一個請求,用來測試api接口非常友善。
Postman的優點
- 使用簡單,無需搭建環境,直接使用,可以快速建構請求。
- 儲存以供以後回放使用。
- Postman有響應結果的斷言功能,可以用來寫測試用例。
- 可以把測試用例放在同一個目錄下批量運作管理,可以設定疊代次數。
- 可以設定環境變量,友善測試環境和生産環境使用同一套測試用例。
- 調試結果友善檢視。
安裝Postman
支援chrome插件和獨立應用,下方為應用下載下傳位址。根據自己使用的作業系統,選擇對應的版本。
官方網站:https://www.getpostman.com/apps
下載下傳完成後,直接點選安裝,首次打開會有登入頁面,建議新增賬號登入,這樣所有曆史記錄和集合資料将會免費自動同步到雲端,這樣切換不同裝置就可以快速使用曆史資料了。
安裝完成後界面:
整體布局
界面整體布局如下:
工具欄
- 建立按鈕:建立請求、集合、環境配置。
- 導入按鈕:導入Postman檔案及檔案夾。
- 運作按鈕:批量運作集合請求。
- 建立視窗按鈕:建立一個tab視窗。
- 同步請求-同步請求資料到本地 抓包圖示-使用Postman抓取API請求和cookie
- 設定圖示-應用程式設定
- 通知圖示-接收通知或廣播
- 分享圖示
- 賬戶管理
左側面闆
右側面闆
下面簡單示例下Postman實作get和post請求
最常用的請求方法有GET,POST,PUT和DELETE,它們的差別如下:
- GET請求:用于查詢擷取資料。
- POST請求:建立或更新資料
- PUT請求:更新資料
- DELETE請求:删除資料
HTTP請求包含四個部分:URL,方法,header頭部和body主體。
建構GET請求示例
在url中輸入https://postman-echo.com/get?name=xiaoming&sex=男
get請求的參數在URL中,上面說過了get請求是查詢資料,是以參數類型就是查詢參數。
建構POST請求示例
常見post請求的傳參方式
URL:https://postman-echo.com/post
方式一:表單送出,在body中選擇x-www-form-urlencoded等價于application/x-www-from-urlencoded,會将表單内的資料轉換為鍵值對。
可以上傳任意格式的文本,可以上傳text、json、xml、html等,一般消息主體是序列化的JSON字元串。
就是http請求中的
multipart/form-data,它會将表單的資料處理為一條消息,以标簽為單元,用分隔符分開。既可以上傳鍵值對,也可以上傳檔案。
https://postman-echo.com/post
斷言
Postman添加響應處理,通過檢查響應資料是否符合預期來判斷用例是否通過。Postman提供了很多常用斷言方式:比如對響應狀态碼、響應内容等進行斷言。Postman的代碼片段功能已經把常見的斷言代碼示例已經給我們寫好了,大家直接可以選擇使用。
常見的斷言代碼如下:
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");
});
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("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
pm.test("Successful POST request", function () {
pm.expect(pm.response.code).to.be.oneOf([201,202]);
});
pm.test("Status code name has string", function () {
pm.response.to.have.status("Created");
});
var jsonObject = xml2Json(responseBody);
上述test['XXX']中"XXX",可以根據需要自行修改提示,運作完成後,在下方Test Results顯示我們所定義的提示語句和測試結果。如果為 PASS ,測試通過,如果為FAIL,測試失敗。
斷言示例建立集合并批量運作測試用例
集合,即是postman中的Collections,類似檔案夾,可以把同一個項目的請求放在一個集合裡友善管理和分享。測試人員下次測試可以直接從集合中找到要執行的測試case。可以讓單個的request分組到一起,對每個request都有很多個testcase,都分組收藏到集合裡面,進行自動化測試和回歸測試。如果想将自己的集合分享給團隊内其他人,可以點選Share按鈕進行分享。
1.建立測試集:在左側面闆下點選New collections按鈕。環境變量和全局變量
接口測試時,為了友善修改和管理環境和參數,我們會把域名資訊和請求的固定參數設為環境變量,把接口參數的請求或者傳回參數中的固定值設為全局變量。
點選右上角的眼睛按鈕,點選Add,輸入環境名稱,以及環境的參數和參數值。點選Edit添加全局變量名和變量值。
添加環境名稱,以及具體的參數名和參數值。
添加全局變量,輸入變量名和變量值。修改上述用例
注:變量名要寫在雙花括号裡,如下圖:
生成python代碼
postman完成請求後,可以請求生成各種語言和架構的代碼片段。
點選請求面闆的code按鈕,選擇需要轉換的語言。
預設是http模式
生成python請求代碼,大家也可以試試轉成其他語言。