使用GUI方式啓動jmeter,運行線程較多的測試時,會形成內存和CPU的大量消耗,致使客戶機卡死。html
因此正確的打開方式是在GUI模式下調整測試腳本,再用命令行模式執行。python
命令行方式支持在多個環境下使用,windosw的dos環境下,也能夠在linux環境上執行。linux
執行路徑:執行命令前要檢查當前目錄是不是%JMeter_Home%\bin 目錄;若是 JMeter 腳本不在當前目錄,須要指定完整的路徑;若是要把執行的結果保存在其餘地方也要指定完整的路徑。命令中不指定測試計劃與測試結果的路徑時,默認都是在該目錄下。git
命令:jmeter -n -t <testplan filename> -l <listener filename>apache
例1:測試計劃與結果,都在%JMeter_Home%\bin 目錄windows
> jmeter -n -t test1.jmx -l result.jtl 分佈式
例2:指定日誌路徑的:post
> jmeter -n -t test1.jmx -l report\01-result.csv -j report\01-log.log 性能
例3:默認分佈式執行:測試
> jmeter -n -t test1.jmx -r -l report\01-result.csv -j report\01-log.log
例4:指定IP分佈式執行:
> jmeter -n -t test1.jmx -R 192.168.10.25:1036 -l report\01-result.csv -j report\01-log.log
例5:生成測試報表
> jmeter -n -t 【Jmx腳本位置】-l 【中間文件result.jtl位置】-e -o 【報告指定文件夾】
> jmeter -n -t test1.jmx -l report\01-result.jtl -e -o tableresult
例6:已有jtl結果文件,運行命令生成報告
> jmeter -g【已經存在的.jtl文件的路徑】-o 【用於存放html報告的目錄】
> jmeter -g result.jtl -o ResultReport
注意:
1)-e -o以前,須要修改jmeter.properties,不然會報錯;
2)-l 與-o 目錄不同,最後生成兩個文件夾下。
3)命令中不寫位置的話中間文件默認生成在bin下,下次執行不能覆蓋,須要先刪除result.jtl;報告指定文件夾同理,須要保證文件夾爲空
模板爲report-template,結果目錄D:\apache-jmeter-3.2\bin\resulttable
結果文件類型爲 jtl 或 csv,測試計劃裏添加的哪一種監聽器,就可經過JMeter的相應的監聽器瀏覽結果文件,查看最終的結果。
也能夠用xslproc,將jtl格式轉爲html的形式。
調用jmeter,並生成報告
${JmeterHome}/bin/jmeter.sh -n -t ScriptName.jmx -l log.jtl
將jtl格式轉換成html格式
xsltproc ${JmeterHome}/extras/jmeter-results-detail-report.xsl log.jtl> newlog.html
說明:
jmeter-results-detail-report.xsl 、jmeter-results-report.xsl是文件轉換模板,這個均可以進行編輯,好比添加一些值顯示。
報告文件類型見下文。
Jmeter Thread Group中若是存在HTTP request執行失敗,就對整個Thread Group從新執行,限定最大執行次數N次
JMeter3.0版本發佈後,支持動態報表報告。編寫性能測試報告更加容易。 這裏是對生成報告示例的詳細描述。
測試過程:執行測試文件--》生成測試結果文件---》生成最終的測試報告
修改jmeter.properties
把save這塊的內容基本上都改爲true就行
jmeter.save.saveservice.data_type=true jmeter.save.saveservice.label=true jmeter.save.saveservice.response_code=true # response_data is not currently supported for CSV output jmeter.save.saveservice.response_data=true # Save ResponseData for failed samples jmeter.save.saveservice.response_data.on_error=false jmeter.save.saveservice.response_message=true jmeter.save.saveservice.successful=true jmeter.save.saveservice.thread_name=true jmeter.save.saveservice.time=true jmeter.save.saveservice.subresults=true jmeter.save.saveservice.assertions=true jmeter.save.saveservice.latency=true jmeter.save.saveservice.connect_time=true jmeter.save.saveservice.samplerData=true jmeter.save.saveservice.responseHeaders=true jmeter.save.saveservice.requestHeaders=true jmeter.save.saveservice.encoding=false jmeter.save.saveservice.bytes=true # Only available with HttpClient4 #jmeter.save.saveservice.sent_bytes=true jmeter.save.saveservice.url=true jmeter.save.saveservice.filename=true jmeter.save.saveservice.hostname=true jmeter.save.saveservice.thread_counts=true jmeter.save.saveservice.sample_count=true jmeter.save.saveservice.idle_time=true # Timestamp format - this only affects CSV output files # legitimate values: none, ms, or a format suitable for SimpleDateFormat jmeter.save.saveservice.timestamp_format=ms jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss
在jmeter.properties或者user.properties確認以下配置項:
jmeter.save.saveservice.bytes = true jmeter.save.saveservice.label = true jmeter.save.saveservice.latency = true jmeter.save.saveservice.response_code = true jmeter.save.saveservice.response_message = true jmeter.save.saveservice.successful = true jmeter.save.saveservice.thread_counts = true jmeter.save.saveservice.thread_name = true jmeter.save.saveservice.time = true # the timestamp format must include the time and should include the date. # For example the default, which is milliseconds since the epoch: jmeter.save.saveservice.timestamp_format = ms # Or the following would also be suitable jmeter.save.saveservice.timestamp_format = yyyy/MM/dd HH:mm:ss
若是但願在Errors報告中展現更詳細數據,須要確保以下配置
jmeter.save.saveservice.assertion_results_failure_message = true
若是使用了事務控制器(Transaction Controller),確認Generate parent sample爲未勾選狀態
jmeter -n -t 【Jmx腳本位置】-l 【中間文件result.jtl位置】-e -o 【報告指定文件夾】
命令執行測試文件,生成測試結果文件jtl,生成最終的測試報告
打開【報告指定文件夾】的index.html頁面
應用程序性能滿意度的標準,範圍在0-1之間,1表示達到全部用戶均滿意。是由APDEX公司推出的。計算公式:
請求的經過率(OK)與失敗率(KO),百分比顯示。
數據分析,基本將Summary Report和Aggrerate Report的結果合併。
錯誤狀況,依據不一樣的錯誤類型,將全部錯誤結果展現。
top5錯誤
Response Times Over Time: 響應時間
Bytes Throughput Over Time: 字節接收/發送的數量
Latencies Over Time:延遲時間
Hits Per Second: 每秒點擊率
Codes Per Second: 每秒狀態碼數量
Transactions Per Second: 每秒事務量
Response Time Vs Request: 響應時間點請求的成功/失敗數
Latency Vs Request: 延遲時間點請求的成功/失敗數
Response Time Percentiles: 響應時間百分比
Active Threads Over Time: 激活線程數
Time Vs Threads: 測試過程當中的線程數時續圖
Response Time Distribution: 響應時間分佈
測試的簡單過程記錄:使用Jmeter測試帶有Ajax請求的頁面
實時顯示jmeter測試結果,可以使用:python+Taurus+jmeter 連接
JMeter-自動生成測試報告這裏提到了在windows下如何手動自動生成測試報告
bat腳本
del /s /Q D:\apache-jmeter-3.2\bin\result.jtl rd /s /Q D:\abc\HttpReport md D:\abc\HttpReport jmeter -n -t D:\apache-jmeter-3.2\bin\test1.jmx -l result.jtl -e -o D:\abc\HttpReport
del是刪除jtl,rd是刪除報告文件夾,md是重建報告文件夾(可省略),最後執行命令生成報告。