常見接口測試工具
- postman
- JMeter
- soapUI
- RobotFramework
postman:一款功能強大的網頁調試與發送網頁HTTP請求的工具
本文主要介紹postman基礎使用,更詳盡的腳本語法參考:
postman的操作環境
postman適用於不同的操作系統,Postman Mac、Windows X32、Windows X64、Linux系統,還支持postman 瀏覽器擴展程序、postman chrome應用程序等。
一、 主界面
二、測試集合及子目錄
collection在postman裏面相當於一個文件夾,可以把同一個項目的請求放在一個Collection裏方便管理和分享,Collection裏面也可以再建文件夾。後續的Runner中會用到,Runner的最大單位是Collection。
1. 新建項目
輸入項目名稱,點擊【create】
- 新建項目成功
- 新建子目錄(例:一個項目中有多個模塊,可以按照模塊劃分接口)
3. 導入和導出接口集
- 導出
數據一般以postman_collection.json結尾
- 導入:將導出的.json文件(包括接口和環境)可以共享給其他人,然後通過import的方式,將數據和環境一起全部導入即可
三、請求部分
-
Sendbox:包括Url、Get/Post、Headers、Body、Pre-request Script、Tests
-
Pre-request Script 和 Tests主要用來寫測試腳本和數據準備,其中Pre-request Script裏面寫此接口的前置任務,Tests中主要用來寫測試腳本,並通過Postman的
tests[“你想輸出的內容”] = true/false;
來實現,true顯示爲綠色PASS,false顯示爲紅色FAIL。
其中true等價於1,false等價於0,即上述代碼也可以這麼寫:
tests["你想輸出的內容"] = 1/0;
詳見如下參數:
- Body
-
Auth
身份驗證,主要用來填寫用戶名密碼,以及一些驗簽字段,postman有一個helpers可以幫助我們簡化一些重複和複雜的任務。當前的一套helpers可以幫助你解決一些authentication protocols的問題 -
Headers
請求的頭部信息 -
Body
post請求時必須要帶的參數 -
Pre-requerst scripts
自定義請求數據,在請求之前運行,語法使用JavaScript語句 -
Tests
tests標籤功能比較強大,通常用來寫測試,請求之後運行。支持JavaScript語法。postman每次執行request的時候,會執行tests。測試結果會在tests的tab上面顯示一個通過的數量以及對錯情況。
-
form-data
將表單數據處理爲一條消息,以標籤爲單元,用分隔符分開。既可以單獨上傳鍵值對,也可以直接上傳文件(當上傳字段是文件時,會有Content-Type來說明文件類型,但該文件不會作爲歷史保存,只能在每次需要發送請求的時候,重新添加文件。)。是post請求裏較常用的一種
-
x-www-form-urlencoded
對應信息頭 - application/x-www-from-urlencoded,會將表單內的數據轉換爲鍵值對 -
raw
可以上傳任意類型的文本,比如text、json、xml等,所有填寫的text都會隨着請求發送 -
binary
對應信息頭 - Content-Type:application/octet-stream,只能上傳二進制文件,且沒有鍵值對,一次只能上傳一個文件, 也不能保存歷史,每次選擇文件,提交
四、 環境變量
postman支持設置環境變量和全局變量,並可以一鍵切換不同環境,也可以下載保存爲JSON文件。
環境變量被設置爲鍵值對,鍵爲變量名。
變量分類
- Globals Environment:全局變量,適用於所有Collections和Runner,總是有效
- Current Environment:環境變量,可設置多個環境,根據不同的接口和需求進行切換即可。
- Local:局部變量
- Data: 數據
優先級從高到底 Data ---- > Local ---- > Enviroment ---- > Global
即:如果一個有效的環境變量名和全局變量名重名,那麼全局變量名將被環境變量名覆蓋。
-
一鍵切換環境,選擇No Environment則不使用環境變量,僅適用全局變量
-
可以查看當前環境中的變量和全局變量(Globals)的值
-
設置環境變量
- 添加環境:點擊下圖箭頭所指的設置按鈕,進入環境管理頁面
【設置頁面】如下,可點擊右下角【Add】按鈕添加環境,也可複製、下載、刪除已有環境
- 【添加環境】界面如下,設置環境名和對應變量名、變量值,點擊【Add】即可添加
五、如何查看環境變量
點擊如下箭頭所指按鈕即可查看當前環境的環境變量
不同環境根據需求對同一變量設置不同的變量值,即可使用例多環境可迴歸
六、變量如何使用
postman中變量可用於
- URL
- URL params
- Header values
- form-data/url-encoded values
- Raw body content
- Helper fields
變量點的使用方法:{{variableName}}
-
這個字符串{{variableName}} 將會被它的值所替代。
-
例如:環境變量名爲 “username”,值爲"17711111111",可以在request的URL字段中使用{{username}},{{username}}將會在request發送時被替換成 “17711111111”,如下圖
-
環境變量可以幫助你分離敏感數據例如keys和passwords。你最好保存所有的敏感值到一個環境中,提供一個虛擬的環境來使用。如果你信任這個用戶,你也可以給他你的環境。
-
警告:環境和全局變量被存儲爲字符串。如果你正在存儲對象或數組,請確保在存儲前使用JSON.stringify()格式化他們 ,在檢索時使用 JSON.parse()。
小結:
當postman的body使用了變量,如何知道請求發出的具體變量值是什麼?
- 通過postman console查看
- 通過運行後的環境變量查看
- 通過fiddler抓包查看
注意:
當前Environment中設置的key值名稱必須是唯一的,即使沒有選中,直接用相同key值去setEnvironmentVariable,不會報錯,但實際沒有設置成功;如下案例:
“Viva_Android”環境中的“DevicesID”沒有勾選,但已經在“Viva_Android”環境中存在,所以,當在sandbox中再次設置環境變量時(如下),則新的DevicesID無法生效,但不會報錯;
postman.setEnvironmentVariable("DeviceID", "aaa"); //設置環境變量DeviceID爲aaa
所以,一定注意:環境中的key值不要重名。
七、Runner
Runner中可以添加本地的Data File文件,包括.csv和.json兩種格式文件;如果包含多條數據,每次執行一條數據,具體Demo可在開頭的第一個鏈接中找到;
Runner中添加本地.csv測試文件示例
八、Console調試
console.log(variable_key);
如何查看console的輸出內容?
應用菜單–>View—>Show Postman Console或點擊下圖框中部分
示例:
九、常用設置
- Settings - general - Language detection:選擇【json】,以後請求返回的數據是自動格式化之後的json字符串