只需一行命令: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 模式下的聚合報告查看,可以打開 JMeter GUI 界面 -> 測試計劃 -> 添加線程組 -> 添加聚合報告 -> 點擊 "瀏覽..." 按鈕找到你剛生成的 jtl 文件打開即可統計結果進行分析。
四 這裏是我們使用非 GUI 模式運行測試腳本時可以使用的一些命令:
· -h 幫助 -> 打印出有用的信息並退出
· -n 非 GUI 模式 -> 在非 GUI 模式下運行 JMeter
· -t 測試文件 -> 要運行的 JMeter 測試腳本文件
· -l 日誌文件 -> 記錄結果的文件
· -r 遠程執行 -> 啓動遠程服務
· -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端進行限制,所以發請求發瘋了。後來加了定時器,限制其每秒發的請求數,服務可正常運行了。