【JMeter】JMeter在linux下運行
【JMeter】JMeter在linux下運行
之前在用JMeter做性能測試時基本都用自己的筆記本電腦。
考慮到網絡傳輸和占用系統資源情況時進行了以下分析:
1 在筆記本上,開始-cmd "ping 服務器",得到傳輸時間。在某linux機器上"ping 服務器"得到傳輸時間,兩個時間相差無幾,認為不會影響測試結果
2 一般我用來測試的linux測試機和筆記本電腦,都是4核 8G。
可是!今天公司網絡很不好!嚴重影響了我的測試。忍無可忍,幹脆在linux上測試算啦。
只需一行命令:sh jmeter.sh -n -t http.jmx -l result_*.jtl
步驟:
一 安裝jmeter
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機器對應目錄,可在測試計劃裏添加對應的定時器,聚合報告等。
2 在linux目錄下找到你的測試計劃,vim打開進行編輯
<stringProp name="ThreadGroup.num_threads">200</stringProp> 線程數 <stringProp name="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 -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端進行限制,所以發請求發瘋了。後來加了定時器,限制其每秒發的請求數,服務可正常運行了。【JMeter】JMeter在linux下運行