問題分析:拋出的問題中,提示Java遠程調用方法出現了異常,鏈接拒絕了master,多是主機與奴隸機通訊失去了聯繫php
解決辦法:嘗試把主機的 jmeter-server 與 奴隸機的 jmeter-server給重啓下java
背景:多線程條件壓測mysql
問題分析:看文字介紹說:不可以分配請求地址,可能端口已經佔用了,致使地址不可用linux
解決辦法:經網上查資料, 是因爲linux分配的客戶端鏈接端口用盡, 沒法創建socket鏈接所致,雖然socket正常關閉,可是端口不是當即釋放, 而是處於TIME_WAIT狀態, 默認等待60s後才釋放。 查看linux支持的客戶端鏈接端口範圍, 也就是28232個端口:git
cat /proc/sys/net/ipv4/ip_local_port_range 32768 - 61000
解決方法: 1. 調低端口釋放後的等待時間, 默認爲60s, 修改成15~30s echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout 2. 修改tcp/ip協議配置, 經過配置/proc/sys/net/ipv4/tcp_tw_resue, 默認爲0, 修改成1, 釋放TIME_WAIT端口給新鏈接使用。 echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse 3. 修改tcp/ip協議配置,快速回收socket資源, 默認爲0, 修改成1. echo 1 > /proc/sys/net/ipv4/tcp_tw_recyclegithub
經過上面3項調整, 壓力測試運行正常。sql
3.[Jmeter] 502/Bad Gatewayapache
背景:多線程或者高併發下壓測狀況下數組
問題分析:多是多線程請求的狀況下,達到了ng配置的最大鏈接數,致使出現了502/bad geteway緩存
解決辦法:下降線程數進行測試(實際須要與開發溝通,該接口與實際業務的最大處理能力)
4.[Jmeter] Test failed: text expected to contain /200/
解決辦法:檢查斷言
5.[Jmeter] java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z
解決辦法:mysql.jdbc驅動包版本太低,更新mysql驅動包便可,注意:此包在lib下,而不是lib/ext下
6.[Jmeter] com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 2 Too many authentication failures
背景:利用key進行ssh鏈接服務器的時候,沒法鏈接上服務器的狀況
問題分析:多是JSchException這個插件的問題,通過測試,發現一旦用key鏈接數到達必定量時,就一定會報錯
解決辦法:重啓Jmeter,從新鏈接下就行了(可能插件存在缺陷)
7.[Jmeter] ERROR o.a.j.e.ClientJMeterEngine: Error in rconfigure() method java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.lang.ClassNotFoundException: io.github.ningyu.jmeter.plugin.dubbo.sample.DubboSample (no security manager: RMI class loader disabled)
背景:Jmeter分佈式測試
問題分析:進行分佈式測試的時候,主機沒法啓動奴隸機
解決辦法:經排查,是節點機缺乏dubbo插件的緣由,把插件放上去,重啓下奴隸機的jmeter-server便可
8.[Jmeter]CannotResolveClassException: kg.apc.jmeter.vizualizers.CorrectedResultCollector
在jenkins上用maven方式壓測的時候,提示沒法加載這個類
問題分析:檢查jmx文件,發現新增的插件在maven環境中沒有
解決辦法:要麼把這個插件注入到maven倉庫中,要麼在jmx中刪除這個插件,注意:必定要刪除,而不是隱藏
9.[Jmeter]Engine is busy - please try later(引擎忙,請稍候再試)
背景:運行分佈式測試時報錯
問題分析:多是主機與奴隸機的信息通訊出了問題
解決辦法:重啓奴隸機與宿主機的jmeter-server服務(重啓服務後,記得重啓Jmeter.bat)
10.[Jmeter]if控制器判斷接口沒法識別
問題分析:if控制器只接收兩個結果,true or false,多是返回的結果不爲true or false
解決辦法:利用Jmeter函數處理結果
好比: ${__groovy(1==1,)} -------->返回true ${__groovy(1==2,)} -------->返回false
11.[Jmeter]missing class com.thoughtworks.xstream.converters.ConversionException:
背景:在執行jmeter jmx文件的時候,報錯
問題分析:多是缺乏了某個jar包
解決辦法:檢查下腳本所用的到jar包是否存在於jmeter lib或者lib/ext中
12.[Jmeter]java.lang.ArrayIndexOutOfBoundsException: 0
背景: 運行jmeter jmx任務的時候,直接報錯
問題分析:數組索引越界異常
解決辦法:賊坑,通過baidu,bing等多方面查詢無果,看到日誌中貌似有什麼範圍超限了,覺得是Jmeter工具備內存緩存什麼的,或者對這個jmeter腳本有緩存記錄。最後只能把腳本部份內容複製並從新建立了一個腳本,運行後發現一切正常。趕忙翻看原來的腳本,發現了一個特別蛋疼的事情,不知道何時手誤,把【測試計劃】給註釋了。尼瑪,坑的我老淚縱橫
13.[jmeter]Error in NonGUIDriver java.lang.IllegalArgumentException: Problem loading XML from:'/home/bjqa/apache-jmeter-3.0/bin/../project/realnameauthINFTest/RNA_INFtest.jmx', missing class com.thoughtworks.xstream.converters.ConversionException: kg.apc.jmeter.vizualizers.CorrectedResultCollector : kg.apc.jmeter.vizualizers.CorrectedResultCollector ---- Debugging information ----
問題分析:這個多是因爲當前jmeter運行環境中缺乏jar包致使的
解決辦法:測試計劃的腳本儘可能版本保持一致,或者添加對應的插件(好比:測試時用的腳本版本是5.1.1,那麼在其餘環境下運行的Jmeter腳本也儘可能使用5.1.1)
14.[Jmeter]執行perfmon控制器監控jmx的時候,服務端代理日誌(ServerAgent報錯:java.lang.RuntimeException: Invalid metric specified: jmx)
解決辦法:參考https://blog.csdn.net/warm77/article/details/80534625
http://bbs.51testing.com/forum.php?mod=viewthread&tid=1020124&ordertype=1
先在服務機對應的tomcat配置文件中新增JAVA -D 參數 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1099