1. 程式人生 > >JMeter在linux下執行

JMeter在linux下執行

只需一行命令:sh jmeter.sh -n -t http.jmx -lresult_*.jtl

步驟:

安裝jmeter

1 把你筆記本的jmeter新增到壓縮包 jmeter.zip

2 上傳jmeter.ziplinux伺服器:我用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

問題

1Error in NonGUIDriverjava.lang.NullPointerException

產生該錯誤的原因,目前有兩種情況:

情況1,低版本的JMeter執行高版本的測試計劃(測試計劃是在高版本的JMeter上編制的)。解決方法:使用相同或更高版本JMeter執行該計劃。

情況2,使用第三方外掛生成的測試計劃,執行在沒有該第三方外掛的JMeter上。解決方法:在JMeter上安裝外掛或重新生成不包含外掛的測試計劃。

2)寫了一個scf壓測jar包,因為網路通訊的關係,放到同臺伺服器上執行。

執行沒多久看到一個程序cpu飆到了600%(8)load到了50多。服務端已經不怎麼能處理了。以為服務不行了

仔細看了下,cpu 600多的程序是我的jmeter執行命令,因為我沒在jmeter端進行限制,所以發請求發瘋了。後來加了定時器,限制其每秒發的請求數,服務可正常運行了。