JMeter在linux下執行
只需一行命令:sh jmeter.sh -n -t http.jmx -lresult_*.jtl
步驟:
一安裝jmeter
1 把你筆記本的jmeter新增到壓縮包 jmeter.zip
2 上傳jmeter.zip到linux伺服器:我用rz方式上傳到了/opt/soft
3 解壓,進入路徑/opt/soft/jmeter/bin
4 檢視jmeter.sh是否能夠執行,若不能未其新增執行許可權,我直接 chmod 777jmeter.sh,可用 sh jmeter.sh -v 來檢測命令是否可用。
二編寫測試計劃
1 在GUI模式下,新建一個測試計劃,儲存並上傳到linux機器對應目錄jmeter /bin
2 在linux目錄下找到你的測試計劃,vim開啟進行編輯
<stringPropname="ThreadGroup.num_threads">200</stringProp> 執行緒數
<stringPropname="ConstantTimer.delay">100</stringProp> 固定定時器的時間間隔
新增過的元器件其對應引數都可以在裡面找到,進行引數調整時只要在這裡編輯就ok了。
三結果檔案
結果檔案即之前儲存過的result.jtl格式檔案
該檔案可以使用 GUI 模式下的聚合報告檢視,可以開啟
四這裡是我們使用非 GUI 模式執行測試指令碼時可以使用的一些命令:
· -h 幫助 -> 打印出有用的資訊並退出
· -n 非 GUI 模式 -> 在非 GUI 模式下執行 JMeter
· -t 測試檔案 -> 要執行的 JMeter 測試指令碼檔案
· -l 日誌檔案 -> 記錄結果的檔案
·
· -H 代理主機 -> 設定 JMeter 使用的代理主機
· -P 代理埠 -> 設定 JMeter 使用的代理主機的埠號
例如:jmeter -n -ttest1.jmx -l logfile1.jtl -H 192.168.1.1 -P 8080
五問題
1)Error in NonGUIDriverjava.lang.NullPointerException
產生該錯誤的原因,目前有兩種情況:
情況1,低版本的JMeter執行高版本的測試計劃(測試計劃是在高版本的JMeter上編制的)。解決方法:使用相同或更高版本JMeter執行該計劃。
情況2,使用第三方外掛生成的測試計劃,執行在沒有該第三方外掛的JMeter上。解決方法:在JMeter上安裝外掛或重新生成不包含外掛的測試計劃。
2)寫了一個scf壓測jar包,因為網路通訊的關係,放到同臺伺服器上執行。
執行沒多久看到一個程序cpu飆到了600%(8核),load到了50多。服務端已經不怎麼能處理了。以為服務不行了
仔細看了下,cpu 600多的程序是我的jmeter執行命令,因為我沒在jmeter端進行限制,所以發請求發瘋了。後來加了定時器,限制其每秒發的請求數,服務可正常運行了。