『政善治』Postman工具 — 14、NewMan工具的使用詳解


前面向大家介紹了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,命令行界面)。

官方文檔地址:https://www.npmjs.com/package/newman

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 

或者出現下載失敗,如下圖:

image

我們可以更換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配置到環境變量中。

image

這樣在任何目錄下都可以直接執行NewMan命令了。

(3)NewMan卸載命令

npm uninstall -g newman

3、NewMan執行Postman測試集

以前面文章的綜合練習為例。

(1)導出collections

在collection測試集選項菜單中選擇Export,導出為.json格式的文件。

image

然后選擇默認推薦的Collection v2.1b版本即可。

image

點擊Export,導出綜合練習.postman_collection.json文件。(可以自行重命名)

(2)使用NewMan執行Collection

使用NewMan執行Collection測試集導出的.json文件。

通過NewMan命令行運行測試集,命令行中輸入newman run 導出的json文件名即可。

執行過程如下圖:

image

說明:

  • 第一部分:測試集名稱和執行請求的列表,綠色對勾表示斷言通過,紅色文件表示斷言失敗。
  • 第二部分:測試集執行結果總結。
    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外,還支持jsonhtml格式類型的報告(常用的三種格式)。
  • --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:導出“綜合練習”的環境變量

在環境變量編輯面板中,導出“綜合練習”的環境變量。

image

步驟2:在命令行中執行NewMan命令

命令如下:

newman run C:\Users\L\Desktop\綜合練習.postman_collection.json -e C:\Users\L\Desktop\綜合練習.postman_environment.json

查看執行結果:

image

其他選項,使用方式同理。

6、加入數據驅動

還是以前面文章的綜合練習為例。

步驟1:把綜合練習DDT的Collection測試導出

image

步驟2:導出“綜合練習”的環境變量

image

步驟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

查看執行結果:

image

7、Newman測試報告

Newman提供的測試報告中,常用的包括CLIjsonhtml三種格式。

可以通過-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:\'

解決方式有如下幾種(自己試試):

  1. 使用管理員CMD窗口執行命令。
  2. 通過清理NPM緩存。
    npm cache clean -f
    npm cache clean --force
    
  3. 移除C:\Users\用戶\.npmrc文件
  4. 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文件,內容如下:

image

8、補充

如果在實際工作中需要定時的執行測試,我們就再對應的系統中設置定時任務,來執行上面的命令。

例如在windows系統中,把命令寫入.bat文件中,在定時任務中,到時間執行該.bat文件即可。

在與Jenkins集成時,Jenkins定時執行Newman運行測試集,設置好時間。

在構建時,添加構建步驟選擇執行windows批處理命令,將newman命令寫入即可。

image

這里指說明一下與Jenkins集成的思路,以后會詳細的寫一篇文章說明的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM