1.Postman是什么?
? ? ? ? Postman是接口測試的工具,簡單來說它能模擬瀏覽器對服務器的某個接口發起請求并接收響應數據。
1.1 Postman工作原理
?
2.Postman發送請求
2.1 發送GET請求
????????
我們知道GET請求是沒用請求體的,所以我們需要將請求參數寫在Parames中或寫在URL中,寫在URL上的參數會自動同步到Params中。
?
2.2 POST請求
? ? ? ? POST請求的參數存放在請求體中,但是請求又有很多類型,如Json,表單等,那么我們怎么區分并且攜帶正確的參數呢?
這時我們就需要配置Header部分,這是請求頭的內容,我們使用最多的就是Content-Type設置請求數據的類型;設置了格式之后,我們就要輸入對應的內容了,在Body中輸入請求攜帶的參數:
?
3.斷言
? ? ? ? 斷言的目的是驗證程序的執行結果是否和預測的一樣,當程序執行到斷言的位置時,對應的斷言應該為真。若斷言不為真時,程序會中止執行,并給出錯誤信息。
?
4.Postman關聯
4.1 什么時候需要關聯?
? ? ? ? 當接口與接口之間存在依賴關系時(如只有登錄后才能查看訂單信息),需要使用關聯
4.2?實現步驟
假定:接口B 產生的數據,被 接口A 依賴。
????????1. 發送 接口B 請求,獲取響應數據。
????????2. 將 響應數據,放入公共容器(全局變量、環境變量)中
????????3. 接口A 從 公共容器中,提取數據,發送請求。
核心代碼:
// 1. 獲取 響應數據,轉為 json格式,保存到變量 jsonData中。
var jsonData = pm.response.json()
// 2.1 使用 全局變量做容器。
pm.globals.set("全局變量名", 全局變量值)
// 2.2 使用 環境變量做容器。
pm.environment.set("環境變量名", 環境變量值)
// 3. 在 postman 界面中(URL、請求頭headers、請求體body) 提取 全局、環境變量 數據。
{{全局變量名}}/{{環境變量名}}
4.3 具體例子
4.3.1 使用全局變量實現
? ? ? ? 思路:1.獲取天氣接口的返回值
? ? ? ? ? ? ? ? ? ?2.將返回值中的城市名存入全局變量中
? ? ? ? ? ? ? ? ? ?3.百度搜索接口中訪問全局變量中的城市名
4.3.1.1??獲取城市名并存入global環境中
4.3.1.2? 在調用百度搜索接口中使用全局變量
?
4.3.2?使用環境變量實現
? ? ? ? 和使用全局變量用法基本相同,只是pm調用的屬性不同。
?
5.參數化
5.1 參數化簡介
? ? ? ? 將測試數據組織到數據文件中,通過腳本反復迭代執行,使用不同的數據,達到測試不同用例的目標。和unittest的 parameterized 類似
?
5.2 應用場景
? ? ? ? 測試同一個接口但是測試點不同時考慮使用參數化,如:登錄接口,注冊接口。
?
5.3 數據格式
5.3.1 CSV
優點:數據組織格式簡單
缺點:
1. 不能測試 bool 類型。因為 postman 讀取 csv后,將所有非數值類型數據,自動添加 ”“ 變為字符串
2. 不能存儲復雜數據類型(元組、列表、字典)。
3. 不能實現 參數測試。
應用場景:數據量較大,數據組織格式簡單
?CSV文件格式:
?
5.3.2 JSON
JSON:
優點:
1. 可以測試 bool類型2. 能使用 復雜數據類型3. 可以實現 參數測試。
缺點:相同數據量,json文件要遠大于 csv 文件。?
應用場景:數據量較少,數據組織格式復雜。需要進行 參數測試!
?
?5.4 導入文件到Postman
可以點擊preview查看文件格式是否正確,正確的格式如下圖:
5.5 讀取文件中的數據
根據 使用位置 不同,有兩種方法。
第一種:請求參數(請求行、請求頭、請求體)中:
????????csv文件:{{字段名}}; json文件:{{鍵名}}
第二種:代碼(Tests)中:
????????使用 postman 內置的 關鍵字 iterationData.get(key)
????????csv文件:pm.iterationData.get(字段名); json文件:pm.iterationData.get(鍵名)
全部設置完成后,依次點擊Run->select file ->Run就可以開始執行文件中的用例,運行結果:
?
6.導入與導出
6.1 導入與導出collection
導出:?
導入:
?
6.2 導出環境變量
?導入同上。
?
7.newman生成測試報告
? ? ? ? Postman本身不能生成html的測試報告,我們需要通過newman和htmlextra來生成
npm install -g newman //這是安裝newman的命令npm install -g newman-reporter-htmlextra //這是安裝htmlextra的命令
生成報告命令:? ? ? ??
newman run 測試集文件.json [-e 環境文件 -d 數據文件] -r htmlextra --reporter-htmlextra-export 文件地址\文件名
其中,測試集文件是postman導出的collection,環境文件是Environments,數據文件是用在自動化測試中的JSON或CSV文件
?
? ? ? ? 注:使用這條命令時如果不想用絕對路徑那就將需要的文件都放在同一個目錄下并且在這個目錄中打開cmd
?