jmeter-參數(shù)調(diào)整

啟動(dòng)腳本
jmeter -n -t test.jmx -l result.jtl
參數(shù)說(shuō)明

- h 幫助 -> 打印出有用的信息并退出
- n 非GUI模式 -> 在GUI模式下進(jìn)行JMeter測(cè)試
- t 測(cè)試文件 要運(yùn)行的JMeter測(cè)試腳本文件
- l 日志文件 記錄結(jié)果的文件
- r 遠(yuǎn)程執(zhí)行 啟動(dòng)遠(yuǎn)程服務(wù)
- H 代理主機(jī) 設(shè)置JMeter使用的代理主機(jī)
- P 代理端口 設(shè)置Jmeter使用的代理主機(jī)的端口號(hào)

分析結(jié)果
將生成的 result.jtl 文件,下載到window中,并window版jmeter中使用 聚合報(bào)告查看結(jié)果信息。

JMeter的測(cè)試結(jié)果字段的意義
  1. Label: 定義的HTTP請(qǐng)求名稱(chēng)
  2. Samples: 表示這次測(cè)試中一共發(fā)出了多少個(gè)請(qǐng)求
  3. Average: 訪(fǎng)問(wèn)頁(yè)面的平均響應(yīng)時(shí)間
  4. Min: 訪(fǎng)問(wèn)頁(yè)面的最小響應(yīng)時(shí)間
  5. Max: 訪(fǎng)問(wèn)頁(yè)面的最大響應(yīng)時(shí)間
  6. Error%: 錯(cuò)誤的請(qǐng)求的數(shù)量/請(qǐng)求的總數(shù)
  7. Throughput:每秒完成的請(qǐng)求數(shù)
  8. KB/Sec: 每秒從服務(wù)器端接收到的數(shù)據(jù)量

遇到的問(wèn)題

1、java.net.NoRouteToHostException: Cannot assign requested address

liunx環(huán)境下進(jìn)行壓力測(cè)試,發(fā)現(xiàn)結(jié)果存在error,查看 result.jtl 發(fā)現(xiàn)存在一些錯(cuò)誤消息 1509777594480,4,HTTP請(qǐng)求,Non HTTP response code: java.net.NoRouteToHostException,Non HTTP response message: Cannot assign requested address (Address not available)
錯(cuò)誤原因: 由于liunx 分配的客戶(hù)端連接端口用盡,無(wú)法建立socket連接所致,雖然socket正常關(guān)閉,但是端口不是立即釋放,而是處于 TIME_WAIT 狀態(tài),默認(rèn)等待60s后釋放。
查看liunx支持的客戶(hù)端連接端口范圍,也就是 28232 個(gè)端口。 cat /proc/sys/net/ipv4/ip_local_port_range
32768 - 61000
解決方法:

  1. 調(diào)低端口釋放后的等待時(shí)間,默認(rèn)為60s,修改為15~30s。echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
  2. 修改 tcp/ip 協(xié)議配置,通過(guò)配置 /proc/sys/net/ipv4/tcp_tw_reuse,默認(rèn)為0,修改為1,釋放TIME_WAIT端口給新連接使用。 echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
  3. 修改 ctp/ip 協(xié)議配置,快速回收socket資源,默認(rèn)為0.修改為1。echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

2、命令行模式下輸出結(jié)果沒(méi)有http報(bào)文

命令行模式下一般是保存測(cè)試結(jié)果到文件,再通過(guò)GUI打開(kāi)文件查看報(bào)告,但默認(rèn)配置下輸出的文件不包含請(qǐng)求報(bào)文和響應(yīng)報(bào)文。
解決辦法:
在jmeter.properties文件中修改配置,將結(jié)果文件保存格式改為xml,再開(kāi)啟報(bào)文保存功能,jmeter可以配置只在測(cè)試失敗時(shí)記錄報(bào)文,也可以每一個(gè)測(cè)試樣本都保存。

注意:jmeter官方不建議直接修改jmeter.properties文件,應(yīng)該將要修改屬性追加到user.properties文件中。

jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data.on_error=true
jmeter.save.saveservice.samplerData=true

3、內(nèi)存溢出

在執(zhí)行壓力測(cè)試時(shí)候,有時(shí)候會(huì)遇到OutOfMemoryError這樣的異常;JMeter是一個(gè)純Java開(kāi)發(fā)的工具,內(nèi)存是由java虛擬機(jī)JVM管理;如果出現(xiàn)了內(nèi)存溢出的問(wèn)題,可以通過(guò)調(diào)整JVM內(nèi)存相關(guān)的參數(shù)進(jìn)行優(yōu)化。
參數(shù)調(diào)整:(參數(shù)的調(diào)整僅為參考,具體根據(jù)測(cè)試機(jī)的硬件配置來(lái)決定)
調(diào)整堆內(nèi)存的大?。?br> 將默認(rèn)的set HEAP=-Xms512m -Xmx512m,調(diào)整為set HEAP=-Xms1024m -Xmx1024m;
調(diào)整堆內(nèi)存中新生帶的大?。?br> 將默認(rèn)的set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m,調(diào)整為set NEW=-XX:NewSize=256m -XX:MaxNewSize=256m;
調(diào)整堆內(nèi)存中永久帶的大小(jvm8以前):
將默認(rèn)的set PERM=-XX:PermSize=64m -XX:MaxPermSize=128m,調(diào)整為set PERM=-XX:PermSize=128m -XX:MaxPermSize=256m;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容