接口測試教程 - Postman(十二)Newman 使用

現(xiàn)在只要談到自動化測試,必然談到持續(xù)集成(CI)。目前最流行的持續(xù)集成工具就是Jenkins,為了與Jenkins結(jié)合,那么這些自動化測試工具都必須要支持命令行執(zhí)行方式,也就是說能夠通過命令行來運行自動化測試的用例。

為此,Newman就是 Postman 提供的命令行執(zhí)行工具,可以在命令行中執(zhí)行 Collection 運行過程,并生成測試報告。這樣就能把 Postman 編寫的接口測試用例與持續(xù)集成工具和系統(tǒng)構(gòu)建結(jié)合起來。

使用 Newman 執(zhí)行 Collection ,必須把 Collection 導出為 Json 文件。以我們之前一直用的 Postman echo 為例:

導出的文件名為Postman Echo.postman_collection.json

使用 Newman 執(zhí)行的效果為:

安裝 Newman

Newman 是基于 Node.js 開發(fā),因此必須要先安裝 Node.js 環(huán)境。

下載 Node.js 并安裝之后,可以在 CMD 中使用 npm 命令安裝 Newman:

npm install -g newman

等待安裝完成即可。

Newman 基本命令

上面我們已經(jīng)演示了最基本的命令,也就是直接指定一個 Collection 導出的 Json 文件運行:

newman run collection.json

Newman 完整命令

如果你只想通過 Newman 運行 Collection,或者在 Jenkins 中執(zhí)行接口用例。你可以參考如下這個完整的命令,仿寫就可以了:

newman run postman_collection.json 
-e postman_environment.json 
-d test_data.csv 
-g postman_globals.json 
-n 迭代次數(shù)  
-r cli,html,json,junit 
--reporter-json-export jsonOut.json 
--reporter-junit-export xmlOut.xml 
--reporter-html-export htmlOut.html

簡要說明:

  • postman_collection.json:導出的 collection 文件名
  • postman_environment.json:包含環(huán)境變量的環(huán)境文件
  • test_data.csv:數(shù)據(jù)文件,也可以是 Json 格式。具體格式參考運行參考設置
  • postman_globals.json:包含全局變量的文件
  • 迭代次數(shù):重復執(zhí)行所有請求的次數(shù)
  • cli,html,json,junit:指定導出報表格式,cli 指控制臺的標準輸出,html 為導出 html 報告,json 為 json 格式報告,Junit 導出 xml格式的報告;你需要導出哪些報表,就要先指定導出的格式
  • jsonOut.json/xmlOut.xml/htmlOut.html:分別指定報告文件存放的路徑,如果不指定,會在命令所在的當前目錄下生成一個 Newman 目錄來存放。

如果你想更為深入的了解 Newman 所有參數(shù),你可以查看本文的后續(xù)內(nèi)容。


參數(shù)選項

除了上面的基本命令外,Newman 還提供了很多參數(shù)選項。

如果要查看所有參數(shù),可以使用 -h 參數(shù):

newman -h

可以看到 Newman 有如下選項:

Options:

公共設置選項:
-h, --help                       展示參數(shù)信息
-v, --version                    查看 Newman 版本

基本設置選項:
--folder [folderName]             指定要從集合運行的單個文件夾
-e, --environment [file|URL]      通過json文件指定環(huán)境(環(huán)境模塊導出的)
-d, --iteration-data [file]       指定要使用json或csv的數(shù)據(jù)文件
-g, --globals [file]              通過文件指定全局變量(全局變量設置模塊導出的)
-n, --iteration-count [number]    指定要迭代運行的次數(shù)
-r, --reporters [reporters]       指定用于此運行的報告類型(默認值:cli,也就是控制臺輸出)

請求設置選項:
--delay-request [number]        指定請求之間的延遲(毫秒)
--timeout [n]                   指定 collection 運行的超時時間(毫秒)(默認值:0)
--timeout-request [number]      為請求指定請求超時(毫秒)
--timeout-script [n]            指定腳本運行超時時間(毫秒)(默認為:0)

其他雜項:
--bail                         當有斷言失敗時停止所有運行
--silent                       禁止在命令行界面輸出日志
--color                        強制進行彩色輸出(在 CI 環(huán)境中使用)
--no-color                     禁止命令行界面輸出日志中使用彩色
-k, --insecure                 禁用 SSL 
--ssl-client-cert <path>       指定客戶端 SSL 證書的路徑。支持 .cert 和 .pfx 文件。
--ssl-client-key <path>        指定客戶端 SSL 密鑰的路徑
--ssl-client-passphrase <path> 指定客戶端 SSL 密碼(可選,需要密碼保護密鑰)
-x, --suppress-exit-code       即使失敗也繼續(xù)運行測試,但退出時 code=0
--ignore-redirects             忽略重定向(響應狀態(tài)碼為3XX)
--export-environment <path>    完成運行后,將環(huán)境導出到文件中
--export-globals <path>        完成運行后,導出全局變量到文件中
--export-collection <path>     指定輸出文件保存執(zhí)行的 collection
--disable-unicode              強制將符合 unicode 的符號替換為等效的純文本
--global-var <value>           允許通過命令行以 key = value 格式指定全局變量

參數(shù)解釋

--folder [folderName] 運行單個文件夾

直接指定 Collection 的 Json 文件運行的時候默認是運行整個 Collection,可以通過 --folder 可以指定 Collection 中的某個文件夾來運行。

也就是部分運行了:

運行上圖中導出的 Collection,并指定運行Request Methods文件夾:

命令如下:

newman run "Echo.postman_collection.json" --folder "Request Methods"

-e, --environment [file|URL] 指定環(huán)境文件

在 Postman 中運行時,可以通過界面指定運行的環(huán)境 Environment 。在 Newman 中就必須需要通過參數(shù)指定了。

之前講環(huán)境的時候已經(jīng)講過,Postman 中的環(huán)境可以導出為 Json 文件。在 Newman 運行時,可以使用 -e 參數(shù)指定導出的環(huán)境 Json 文件。

例如:導出的環(huán)境文件名為localhost.postman_environment.json

newman run "Postman Echo.postman_collection.json" -e localhost.postman_environment.json

-d, --iteration-data [file] 指定要使用json或csv的數(shù)據(jù)文件

運行參考設置一節(jié)中我們講過了 Postman 支持的數(shù)據(jù)文件類型(csv,json),并了解了文件的格式。

在 Newman 中運行時,通過 -d 參數(shù)指定這些數(shù)據(jù)文件。

newman run "Postman Echo.postman_collection.json" -d user.csv 

-g, --globals [file] 指定全局變量文件

-g 參數(shù),通過文件指定當次運行 Collection 中所需要的全局變量。

全局變量文件可以從 Postman 中導出,也可以遵照全局變量的文件格式自己書寫,再通過 -g 參數(shù)指定。

newman run "Postman Echo.postman_collection.json" -g globals.json

-n, --iteration-count [number] 指定要迭代運行的次數(shù)

通過 -n 次數(shù),可以指定當次運行 Collection 的次數(shù)。對迭代不熟悉的同學,也可以參考運行參考設置中關于迭代的解釋部分。

-r, --reporters [reporters] 指定用于此運行的報告類型

通過 -r 指定報告的類型,不指定的話默認就是 cli , 也就是控制臺輸出。
注意,指定多種報告類型的時候中間不能有空格,必須以逗號分隔:

? -r cli,json,junit
? -r cli , json,junit

如果指定了多個報告,并想為每個報告指定選項的話(比如指定某些報告的保存路徑),則需要通過如下方式額外指定:

--reporter-{{reporter-name}}-{{reporter-option}}

{{reporter-name}}:指定報告名稱,如 cli,json,junit,html 等
{{reporter-option}}:選項,如指定路徑 export

比如 指定報告類型為 cli 和 Junit,而 Junit 導出的文件我想指定保存到 d:\data\report,就可以寫為:

-r cli,junit --report-junit-export d:\data\report\junit_report.xml
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內(nèi)容