JMeter工具Day1基礎知識之使用命令列生成html報告
JMeter執行方式有2種,一種是GUI模式,一種是NO-GUI模式。GUI模式就是介面模式,NO-GUI模式就是命令列模式。介面模式主要用來編寫和除錯指令碼用的,專案的真正執行最好是採用命令列模式,因為採用命令列模式可以和持續整合或者其它框架進行對接,做成自動化迴歸測試平臺。我們可以拿jmeter介面當做學習工具或者當做指令碼開發和除錯工具,如果採用介面模式做正式執行,那麼這樣的過程一定不是自動化的過程,是半手工半自動化的過程,這樣我們就成為不了一個真正的介面自動化測試人員。命令列執行模式,具有更加靈活和強大的功能,能完成更多的高階用法。在真正的專案執行過程中,無論是介面自動化測試,還是介面效能測試,我個人採用的全都是命令列執行模式。
今天要講的是如何將一個用介面編寫好的指令碼,使用命令列去執行,然後再使用命令列將生成的執行日誌檔案轉化為html報告。這些功能,都是JMeter3.0及更高版本自帶的功能,使用起來特別方便,而且報告也非常直觀,圖形化報表也很美觀。
個人建議:我們在學習工具的時候,從簡單入手、從介面入手沒有錯誤,但是學完了簡單的用法,依然需要向更高階的功能拓展,否則達不到真正理解和精通一款工具的目的。是否會靈活熟練使用命令列模式去執行jmeter任務,是用來判斷你熟悉jmeter的考核點之一,也是用來判斷你使用jmeter所處的階段:個人學習式、小作坊式、正規專案級模式。
命令列詳解:
以下操作是在windows上演示的,
下面是我儲存指令碼的目錄結構,大家可以參考我前面編寫的《JMeter工具基礎知識篇-工程目錄結構及命名規範》,如何建立規範點的工程目錄名稱。
接下來,我使用命令列,分兩步將報告生成出來。第一步是使用命令列執行指令碼並生成日誌檔案,第二步是使用命令行將生成的日誌檔案轉化為html報告。
【jmeter命令列執行】
執行命令如下:
jmeter -n -t D:\SvnProject\test01\firstJmeterProject\script\baidu_test.jmx -l D:\SvnProject\test01\firstJmeterProject\result\jtl\baidu_test-debug-2-0-10-001.jtl -j D:\SvnProject\test01\firstJmeterProject\result\jtl\baidu_test-debug-2-0-10-001.log
執行過程如下:
執行後生成的日誌檔案如下:
【jmeter命令列生成報告】
報告生成命令如下:
jmeter -g D:\SvnProject\test01\firstJmeterProject\result\jtl\baidu_test-debug-2-0-10-001.jtl -o D:\SvnProject\test01\firstJmeterProject\result\html\
執行過程如下:
執行後生成的報告如下:
開啟index.html就可以檢視報告了:
【命令列使用特別說明】
1、 命令行執行時生成的日誌檔案的格式一定要設定為csv格式,請參考jmeter.properties檔案中的屬性:jmeter.save.saveservice.output_format=csv
如果執行的日誌不是csv格式,如果被設定為了xml格式,轉化報告的時候,會報以下錯誤:
2、 報告生成命令列設定的輸出路徑是一個空目錄
我碰到很多人在這兒掉坑裡了,這句話包含兩層意思:
1)、這個路徑是一個目錄的全路徑,注意,是目錄的路徑,不是檔案路徑;
2)、這個目錄是個空目錄,也就是說不包括任何檔案和子目錄。如果此目錄不為空,生成的時候會報以下錯誤:
檢視日誌檔案可以清楚的知道錯誤提示資訊:
總結:IT是一門實踐性很強的學科,看完了文章,一定要多動手練練,否則看似很簡單的內容,當你真正去實踐的時候會遇到各種坑,只要在實踐的過程中,理論結合實踐,讓自己的工作效率越來越高,解決問題的能力越來越強,經驗也越來越豐富。
備註:只講乾貨,將知識的本質和原理輔以例子,讓你學起來知其然並且知其所以然,讓你一次的學習解決一類知識點!讓我們一起學習並快樂著。如果覺得好,請動動手指轉發吧,做一個知識的傳播者,share knowledge with the world!