只需一行命令:sh jmeter.sh -n -t http.jmx -l result_*.jtljava
步驟:linux
一 安裝jmetervim
1 把你筆記本的jmeter添加到壓縮包 jmeter.zip服務器
2 上傳jmeter.zip到linux服務器:我用rz方式上傳到了/opt/soft網絡
3 解壓,進入路徑/opt/soft/jmeter/bin測試
4 查看jmeter.sh是否可以執行,若不能未其添加執行權限,我直接 chmod 777 jmeter.sh,可用 sh jmeter.sh -v 來檢測命令是否可用。插件
二 編寫測試計劃線程
1 在GUI模式下,新建一個測試計劃,保存並上傳到linux機器對應目錄,可在測試計劃裏添加對應的定時器,聚合報告等。3d
2 在linux目錄下找到你的測試計劃,vim打開進行編輯代理
<stringProp name="ThreadGroup.num_threads">200</stringProp> 線程數 <stringProp name="ConstantTimer.delay">100</stringProp> 固定定時器的時間間隔 添加過的元器件其對應參數均可以在裏面找到,進行參數調整時只要在這裏編輯就ok了。
三 結果文件
結果文件即以前保存過的result.jtl格式文件
該文件能夠使用 GUI 模式下的聚合報告查看,能夠打開 JMeter GUI 界面 -> 測試計劃 -> 添加線程組 -> 添加聚合報告 -> 點擊 "瀏覽..." 按鈕找到你剛生成的 jtl 文件打開便可統計結果進行分析。
四 這裏是咱們使用非 GUI 模式運行測試腳本時能夠使用的一些命令:
例如:jmeter -n -t test1.jmx -l logfile1.jtl -H 192.168.1.1 -P 8080
五 問題
1)Error in NonGUIDriver java.lang.NullPointerException
產生該錯誤的緣由,目前有兩種狀況:
狀況1,低版本的JMeter運行高版本的測試計劃(測試計劃是在高版本的JMeter上編制的)。解決方法:使用相同或更高版本JMeter運行該計劃。
狀況2,使用第三方插件生成的測試計劃,運行在沒有該第三方插件的JMeter上。解決方法:在JMeter上安裝插件或從新生成不包含插件的測試計劃。
2)寫了一個scf壓測jar包,由於網絡通訊的關係,放到同臺服務器上運行。
運行沒多久看到一個進程cpu飆到了600%(8核),load到了50多。服務端已經不怎麼能處理了。覺得服務不行了
仔細看了下,cpu 600多的進程是個人jmeter執行命令,由於我沒在jmeter端進行限制,因此發請求發瘋了。後來加了定時器,限制其每秒發的請求數,服務可正常運行了。
六 輸出實例