【Jmeter】Jmeter使用常見問題記錄,持續~~~

【Jmeter】Jmeter使用常見問題記錄,持續~~~



1、利用負載機進行壓測可能出現的問題:

(1)遠程負載機 jmeter-server服務死掉,這個時候需要執行如下操作:

檢查遠程服務是否起來:ps -ef| grep jmeter, 如果起來了,會顯示佔用的進程號;

如果確認是進程是存在的,但是就是連不上遠程服務,這個時候就殺死jmeter-server的進程:kill -9 ***(進程號),然後從新啓動jmeter-server服務

如果進程不存在,直接啓動jmeter-server服務

(2)遠程服務正常啓動,但是利用本地的jmeter客戶端無法連接遠程服務

這個時候,你首先要看看你電腦是不是有雙網卡,比如筆記本電腦自行建了wifi共享、或者VM虛擬機新建了虛擬網卡、或者用了360wifi什麼的。

(3)java.net.SocketException: Permission denied: connect;

    解決 Winows 啓動配置文件:jmeter.bat,添加如下啓動參數設置: set JVM_ARGS="-Djava.net.preferIPv4Stack=true"
說明,這個問題當時看了很久,後來終於在百度上找到了相關的blog(參考http://www.bubuko.com/infodetail-1278724.html)

(4)Jmeter-server啓動失敗:Cannot start. Unable to get local host IP address. is a loopback address

這個問題,每一次需要大型壓力測試的時候,分配遠程機器,需要重新部署服務總是會遇到,其實就是/etc/hosts文件設置不對導致Jmeter啓動失敗.
果然還是這個問題,貼/etc/hosts示例: 
127.0.0.1       localhost.localdomain localhost
10.20.10.31   higkoo.rdev.company.net higkoo
執行命令`hostname`查看當前機器名如果當前機器名與/etc/hosts不一致
,則修改hosts修改你的本地ip+正確的hostname;

注意,還可以使用命令:./jmeter-server -Djava.rmi.server.hostname=192.168.5.90

(5)遠程機器上的jmeter-server無法啓動,這個時候,請查看權限

先使用ls -l查看當前情況下jmeter-server文件的權限,如果沒有可執行權限,則需要修改權限;
chmod 777 jmeter-server  (7表示可寫、讀、執行),這裏777直接給所有用戶(包括你分配的用戶組)全部加上了可執行權限。這裏自行了解chmod的語法

2、Jmeter使用日常問題

(1)當時測試的接口,參數爲中文的問題,需要轉UTF-8,例如搜索接口的測試

利用BeanShell Preprocessor 處理請求參數的中文轉碼問題,解決方案請見另外一篇單獨的blog(Jmeter利用BeanShell處理中文轉碼問題

(2)本地啓動jmeter報錯,或者壓測過程中假死:Java.lang.OutOfMemoryError: PermGen space

內存溢出
修改jmeter.bat文件:
        1、HEAP表示堆內存,xms、xmx分別表示初始化內存,最大內存,堆內存存儲的全部是對象;
        2、NEW表示棧區,用來保存基礎數據類型的對象和自定義對象的引用;
        3、PERM表示方法區,這個內存主要用來存放靜態的類信息和方法信息,靜態的方法和變量,final標註的常量信息等。
set HEAP=-Xms512m -Xmx1024m
   set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m
   set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50%
   set TENURING=-XX:MaxTenuringThreshold=2
   set RMIGC=-Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000
   set PERM=-XX:PermSize=256m -XX:MaxPermSize=512m

3、使用Jmeter測試Dubbo接口可能出現的問題


將Dubbo接口測試服務的jar包放入jmeter lib/ext目錄下,重新啓動jmeter時可能會報spring jar包衝突,這是由於Dubbo工程師引入了spring相關的jar包了,但是Jmeter默認也是自帶了spring-core-2.5.6.jar包的(在lib目錄下),所以當我們將測試jar放到jmeter對應目錄下,重啓jmeter的時候回報spring的jar包衝突,所以在利用就jmeter做Dubbo接口測試的時候,我們需要將Jmeter自帶的spring-core-2.5.6.jar包去掉。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章