1. 程式人生 > >【JMeter】JMeter在linux下運行

【JMeter】JMeter在linux下運行

null time 傳輸 系統 group inux 可用 url 計劃

【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下運行