前面向大家介紹了Postman的用法,我們發現這些操作都離不開Postman 的客戶端,我們知道伺服器一般都是Linux系統,那麼如何在Linux系統下執行我們的Postman測試集指令碼(json檔案)呢,谷歌公司為了解決這個問題,引入了 NewMan工具。
1、NewMan工具的介紹
Newman是Postman的命令列,是一種Collection測試集執行程式。NewMan基於Node.js開發,它使您可以直接從命令列輕鬆執行和測試Postman測試集。它在構建時考慮了可擴充套件性,因此您可以輕鬆地將其與持續整合伺服器整合並構建系統。
簡單的說:
- Postman使用NewMan命令列工具,完成Collection測試集指令碼的執行。
- NewMan是專門用於Postman進行自動化測試和持續整合的CLI工具(
command-line interface
,命令列介面)。
2、NewMan的安裝
(1)安裝
首先需要安裝Node.js
,請看https://blog.csdn.net/Liuyuelinjiayou/article/details/110499056文章中關於Node.js
的下載安裝。
完成Node.js
安裝之後,在命令列中輸入npm install -g newman
自動完成NewMan的安裝。
提示:
如果NewMan下載不了,如卡在下面不動
C:\Users\L>npm install newman -g
[..................] / rollbackFailedOptional: verb npm-session 8cb76e6aae9ea432
或者出現下載失敗,如下圖:
我們可以更換npm命令
使用國內映象庫,例如:淘寶。
# 1.獲取npm命令當前使用的映象庫
C:\Users\L>npm config get registry
https://registry.npmjs.org/
# 2.設定成淘寶映象庫,並檢視(修改的是.npmrc檔案中的內容)
C:\Users\L>npm config set registry http://registry.npm.taobao.org/
C:\Users\L>npm config get registry
http://registry.npm.taobao.org/
# 3.下載NewMan工具
C:\Users\L>npm install newman -g
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
F:\DevInstall\nodejs\node_global\newman -> F:\DevInstall\nodejs\node_global\node_modules\newman\bin\newman.js
+ newman@5.2.2
added 157 packages from 200 contributors in 17.027s
# 特別要記住上面newman的安裝路徑
# F:\DevInstall\nodejs\node_global\newman
# 4.還原npm命令的映象庫
C:\Users\L>npm config set registry https://registry.npmjs.org/
C:\Users\L>npm config get registry
https://registry.npmjs.org/
(2)驗證NewMan環境:
在CMD命令列中執行newman -v
。
但是出現如下情況。
C:\Users\L>newman -v
'newman' 不是內部或外部命令,也不是可執行的程式
或批處理檔案。
# 也找不到newman工具的位置
C:\Users\L>where newman
資訊: 用提供的模式無法找到檔案。
解決辦法:進入到NewMan的安裝目錄(上邊安裝NewMan的時候有顯示)
# 進入到NewMan的安裝目錄
# F:\DevInstall\nodejs\node_global
F:\DevInstall\nodejs\npm newman -v
# 執行newman -v命令檢視newman的安裝版本
F:\DevInstall\nodejs\node_global>newman -v
5.2.2
也可以把F:\DevInstall\nodejs\node_global
配置到環境變數中。
這樣在任何目錄下都可以直接執行NewMan命令了。
(3)NewMan解除安裝命令
npm uninstall -g newman
。
3、NewMan執行Postman測試集
以前面文章的綜合練習為例。
(1)匯出collections
在collection測試集選項選單中選擇Export
,匯出為.json
格式的檔案。
然後選擇預設推薦的Collection v2.1
b版本即可。
點選Export
,匯出綜合練習.postman_collection.json
檔案。(可以自行重新命名)
(2)使用NewMan執行Collection
使用NewMan執行Collection測試集匯出的.json
檔案。
通過NewMan命令列執行測試集,命令列中輸入newman run 匯出的json檔名
即可。
執行過程如下圖:
說明:
- 第一部分:測試集名稱和執行請求的列表,綠色對勾表示斷言通過,紅色檔案表示斷言失敗。
- 第二部分:測試集執行結果總結。
iterations
:迭代次數。
requests
:請求個數。
test-scripts
:請求後置指令碼個數。
prerequest-scripts
:請求前置指令碼個數。
assertions
:斷言個數。
total run duration
:總執行時間。
total data received
:接收到的總資料大小。
average response time
:平均響應時間。 - 第三部分:失敗斷言的列表,以及斷言失敗的詳情。
4、NewMan命令常用選項
Postman中NewMan命令列執行文件:https://learning.postman.com/docs/running-collections/using-newman-cli/command-line-integration-with-newman/
(1)幫助選項
選項 | 細節 |
---|---|
-h , --help |
輸出使用情況資訊 |
-v , --version |
輸出版本號 |
(2)常用選項
-e, --environment
:指定environment環境變數,使用前環境變數需要以.json
的格式進行匯出。(全路徑)-g, --globals
:指定 global 環境變數,使用前全域性變數需要以.json
的格式進行匯出。(全路徑)-d, --iteration-data
:指定執行Collection測試集時使用的資料驅動檔案(全路徑)-n, --iteration-count
:指定Collection run
時,測試集迴圈迭代次數iterations。-r, --reporters [reporters]
:測試集執行完成後的結果報告型別,除預設命令列格式CLI外,還支援json
、html
格式型別的報告(常用的三種格式)。--folder [folderName]
:指定要從集合執行的單個資料夾。
(3)其他選項
選項 | 細節 |
---|---|
--bail |
測試用例失敗時停止執行器 |
--silent |
禁用終端輸出 |
--color off |
禁用彩色輸出(自動) |
-k , --insecure |
禁用嚴格的SSL |
-x , --suppress-exit-code |
即使發生故障後仍繼續執行測試,但退出 code=0 |
--ignore-redirects |
禁用自動關注3XX 響應 |
--verbose |
顯示收集執行和傳送的每個請求的詳細資訊 |
5、加入環境變數
一般Collection測試集都會有自己的環境變數,使用newman run + 測試集.json檔案
命令,執行測試集是不帶有該測試集的環境變數的。
這些環境變數需要單獨的匯出,並使用NewMan執行。
步驟1:匯出“綜合練習”的環境變數
在環境變數編輯皮膚中,匯出“綜合練習”的環境變數。
步驟2:在命令列中執行NewMan命令
命令如下:
newman run C:\Users\L\Desktop\綜合練習.postman_collection.json -e C:\Users\L\Desktop\綜合練習.postman_environment.json
檢視執行結果:
其他選項,使用方式同理。
6、加入資料驅動
還是以前面文章的綜合練習為例。
步驟1:把綜合練習DDT
的Collection測試匯出
步驟2:匯出“綜合練習”的環境變數
步驟3:在命令列中執行NewMan命令
因為資料驅動檔案本身就再計算機中,我們就可以直接執行NewMan命令了。
命令如下:
newman run C:\Users\L\Desktop\綜合練習DDT.postman_collection.json -e C:\Users\L\Desktop\綜合練習.postman_environment.json -d C:\Users\L\Desktop\綜合練習資料.csv
檢視執行結果:
7、Newman測試報告
Newman提供的測試報告中,常用的包括CLI
,json
和html
三種格式。
可以通過-r
或者--reporter
命令指定所用的報告格式。
- CLI格式報告:為在CMD客戶端呈現的報告模板,Newman預設使用該格式。
- json格式報告:可以匯出json格式的報告,通過
-r json
進行設定,並加上--reporter-json-export
引數指定報告生成的路徑。
例如:測試集執行命令 -r json --reporter-json-export D:\result.json
- html格式報告:可以匯出html格式的報告,通過
-r html
進行設定,並加上--reporter-html-export
引數指定報告生成的路徑。
在使用之前需要通過npm install -g newman-reporter-html
先完成安裝。
例如:測試集執行命令 -r html --reporter-html-export D:\result.html
(1)生成CLI和json格式的測試報告
沿用上面的示例,執行命令如下:
newman run C:\Users\L\Desktop\綜合練習DDT.postman_collection.json -e C:\Users\L\Desktop\綜合練習.postman_environment.json -d C:\Users\L\Desktop\綜合練習資料.csv -r cli,json --reporter-json-export F:\testTesult.json
會提示:error: EPERM: operation not permitted, mkdir 'D:\'
解決方式有如下幾種(自己試試):
- 使用管理員CMD視窗執行命令。
- 通過清理NPM快取。
npm cache clean -f npm cache clean --force
- 移除
C:\Users\使用者\.npmrc檔案
- Windows10系統原因。(我並沒有解決這個問題)
命令執行完成後,我們會得到一個.json
格式的測試報告檔案。我們不用這種格式的測試報告檢視測試結果(可能會把該檔案提供給其他測試報告生成工具,最終得到比較好看的測試報告)。
(2)生成HTML格式的測試報告
我們需要先安裝newman-reporter-html
工具,
執行命令:npm install -g newman-reporter-html
,(下載不了換npm映象庫)。
然後執行測試命令:
newman run C:\Users\L\Desktop\綜合練習DDT.postman_collection.json -e C:\Users\L\Desktop\綜合練習.postman_environment.json -d C:\Users\L\Desktop\綜合練習資料.csv -r cli,html --reporter-html-export D:\result.html
命令執行完成後,會生成一個HTML檔案,內容如下:
8、補充
如果在實際工作中需要定時的執行測試,我們就再對應的系統中設定定時任務,來執行上面的命令。
例如在windows系統中,把命令寫入.bat
檔案中,在定時任務中,到時間執行該.bat
檔案即可。
在與Jenkins整合時,Jenkins定時執行Newman執行測試集,設定好時間。
在構建時,新增構建步驟選擇執行windows批處理命令,將newman命令寫入即可。
這裡指說明一下與Jenkins整合的思路,以後會詳細的寫一篇文章說明的。