Postman使用小教程--基础入门篇
文章目錄
- 1 Postman介紹
- 2 postman基礎功能介紹
- 2.1 postman基礎頁面
- 2.2 postman基礎頁面介紹
- 2.2 接口測試流程和原理
- 2.3 請求區域介紹
- 3 導出和導入接口集
- 3.1 導出
- 3.2 導入
- 4 設置環境變量
- 4.1 環境變量優先級
- 4.2 新建環境變量
- 4.3 將返回值的某個數據設置為環境變量
- 4.4 將其他的常用tests方法
- 5 使用postman進行接口自動化測試
- 6 附錄
1 Postman介紹
Postman是一款功能強大的網頁調試與發送網頁HTTP請求的Chrome插件。簡單來說,四個詞,簡單實用大方美觀!
Postman官網下載地址:https://www.postman.com/downloads/
2 postman基礎功能介紹
2.1 postman基礎頁面
2.2 postman基礎頁面介紹
Collection在postman里面相當于一個文件夾,可以把同一個項目的請求放在一個Collection里方便管理和分享,Collection里面也可以再建文件夾。
這里我們做一個普通接口的簡單的示例:
Step1:新建一個文件夾
Step2:文件夾創建完畢,新建一個請求
Step3:輸入請求URL和請求參數,點擊“Send”
在此給大家推薦幾個數據接口網站,注冊就有免費調用機會:
點擊進入APILINK
點擊進入聚合數據中心
控制臺-天氣API
2.2 接口測試流程和原理
接收包理解:
2.3 請求區域介紹
請求部分介紹:
請求區域介紹:
1 Authorization:身份驗證,主要用來填寫用戶名密碼,以及一些驗簽字段,postman有一個helpers可以幫助我們簡化一些重復和復雜的任務。當前的一套helpers可以幫助你解決一些authentication protocols的問題。;
2 Headers:請求的頭部信息
3 Body:post請求時必須要帶的參數,里面放一些key-value鍵值對
4 Pre-requerst Script:可以讓你在 請求之前自定義請求數據,這個運行在請求之前,語法使用JavaScript語句。
5 tests:tests標簽功能比較強大,通常用來寫測試,它是運行在請求之后。支持JavaScript語法。postman每次執行request的時候,會執行tests。測試結果會在tests的tab上面顯示一個通過的數量以及對錯情況。這個后面會進行詳解,它也可以用來設計用例,比如要測試返回結果是否含有某一字符串
6 form-data:,它將表單數據處理為一條消息,以標簽為單元,用分隔符分開。既可以單獨上傳鍵值對,也可以直接上傳文件(當上傳字段是文件時,會有Content-Type來說明文件類型,但該文件不會作為歷史保存,只能在每次需要發送請求的時候,重新添加文件。);post請求里較常用的一種
7 x-www-form-urlencoded:對應信息頭-application/x-www-from-urlencoded,會將表單內的數據轉換為鍵值對;
8 raw:可以上傳任意類型的文本,比如text、json、xml等,所有填寫的text都會隨著請求發送;
9 binary:對應信息頭-Content-Type:application/octet-stream,只能上傳二進制文件,且沒有鍵值對,一次只能上傳一個文件, 也不能保存歷史,每次選擇文件,提交;
3 導出和導入接口集
postman支持非常方便的導入和導出接口集,繼續操作如下:
3.1 導出
3.2 導入
0 error,0 wainning,如此即簡單的導入導出collection集合
4 設置環境變量
4.1 環境變量優先級
| Enviroment | 環境變量 |
| Loca | 局部 |
| Data | 數據 |
優先級從高到底: Data ---- > Local ---- > Enviroment ---- > Global
postman支持很方便的設置環境變量以及全局變量,并可以一鍵切換不同環境
可以一鍵切換環境,選擇No Environment則不使用環境變量,僅適用全局變量
可以查看當前環境中的變量和全局變量(Globals)的值
進入設置頁面
4.2 新建環境變量
新建一套環境變量名為test
創建環境變量意義:能夠很方便的調取我們所需的數據
4.3 將返回值的某個數據設置為環境變量
應用場景:在某些時候,我們需要獲取到一個變量,并保存下來,因為在后面我們會使用到。比如token信息;
這時候就需要用到tests區域了,使用其強大的js語法
下面是一個簡單的將返回值的某個數據設置為環境變量或者全局變量的介紹:
//定義一個xxx,獲取body中返回的所有參數,并轉化為JSON格式var xxx = JSON.parse(responseBody);//檢查json中某個數組元素的個數(這里檢測programs的長度) tests["program's lenght"] = data.programs.length === 5;//將返回中的值設置為一個環境變量pm.environment.set("key",xxx.data.value);或者:postman.setEnvironmentVariable("key", "value");//將返回中的值設置為一個全局變量, pm.globals.set("key",xxx.data.value); 或者postman.setGlobalVariable("key", "value");//注意:Global后面不能加S,value值一定要指定到某個具體節點4.4 將其他的常用tests方法
在postman里,內置了一些常用的方法,可以很方便的調用:
下面是一些常用的tests方法:
1./*測試response Headers中的某個元素是否存在 */ tests["元素Content-Type是否存在"] = postman.getResponseHeader("Content-Type"); //getResponseHeader()方法會返回header的值;2./*定義一個xxx,獲取headers值*/var.xxx = postman.getResponseHeader("key");3./*將Headers中的值設置為一個環境變量*/postman.setEnvironmentVariable("key",xxx);或者pm.environment.set("key",xxx);4./*檢查response的code值是否為200*/tests["Status code is 200"] = responseCode.code === 200; // tests["Status code is 200"]中的tests是一個內置對象, /*tests["Status code is 200"]是指為這個斷言起個名稱叫”Status code is 200”,這個名稱可以自行修改。 responseCode.code === 200中的responseCode是內置對象,responseCode對象中有個屬性是code,是指HTTP狀態碼的code,判斷code是否為200.綜合起來,這句代碼的意思是:名稱為”Status code is 200”的斷言中,判斷responseCode對象的code屬性值(HTTP狀態碼)是否為200。*/5./*檢查response的body中是否包含字符串 */ tests["Body matches string"] = responseBody.has("type"); // tests["Body matches string"]中的tests是一個內置對象, /*tests["Body matches string"]是指為這個斷言起個名稱叫”Body matches string”,這個名稱可以自行修改。 這句代碼的意思是:名稱為”Body matches string”的斷言中判斷響應正文中是否包含:type這個字段。type無論是key或者value,只要匹配就可以。多個類型可用“,”分割。*/6./*檢查response的body中是否包含字符串 */ 檢查Response Body是否等于字符串 tests["測試點"] = responseBody === "Response Body返回的內容";//這個可以用在接口返回內容為純字符串時,直接檢查整個返回結果的正確性7./*檢查Response time 是否小于200ms */tests["Response time 小于200毫秒"] = responseTime < 200;8./*檢查Response time 是否大于200ms */tests["Response time 大于200毫秒"] = responseTime > 200;9./*檢查response的body中是否包含字符串 */ postman.setNextRequest('Request 4') // postman.setNextRequest()是一個帶有一個參數的函數,它是接下來要運行的請求的名稱或ID。往往用來跳轉至某個接口,只在運行該集合時有用,單獨運行無效10./*轉換XML body為JSON對象 */var jsonObject = xml2Json(responseBody);11./*設置一個隨機數變量 */pm.globals.set("type",parseInt(4*Math.random())+1); //針對不同類型的課程類型,設置一個1到4的隨機整數,字段名是type,parselnt 是強制轉換為整數12./*校驗接口返回是否有數據 */tests["獲取第一個結果"] = xxx.content.jieguo[0];//程序設置的是如果當前沒有數據,則只返回content[],所以這句斷言可以校驗,如果content里還有數據,則視為返回不為空5 使用postman進行接口自動化測試
首先,既然是自動化測試,那么我們肯定需要工具 (Postman) 或者代碼能幫我們直接判斷結果是否符合預期。那么在接口測試上,大體就兩個思路:
判斷請求返回的 code 是否符合預期
判斷請求返回的內容中是否包含預期的內容(關鍵字)
接下來我們看看如何利用 Postman 來解決上述的問題:
step1. 這是兩個模擬天氣的接口集合,點擊擴展按鈕,找到RUN,進入
step2. 先簡單運行一次:
運行成功!
6 附錄
在此推薦一款很好的谷歌瀏覽器插件Talend API Teste
直接通過谷歌網上商店搜索安裝即可!
安裝完畢就可以進行接口測試啦!如下圖:
操作與Postman大同小異,趕快試試吧!
總結
以上是生活随笔為你收集整理的Postman使用小教程--基础入门篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于机器视觉的散热器钎焊缺陷检测系统研发
- 下一篇: 无人驾驶出租车遭警察拦截后欲“潜逃”,A