錯(cuò)誤1
java.io.FileNotFoundException:rmi_keystore.jks
文件校驗(yàn)問(wèn)題
1、不進(jìn)行文件校驗(yàn),打開(kāi) [ jmeter 安裝目錄 ]\bin\jmeter-server.bat 文件
# 在 jmeter.properties 文件中钞翔,修改以下內(nèi)容:
server.rmi.ssl.disable=true
2苇侵、運(yùn)行 create-rmi-keystore.bat (Windows)/ create-rmi-keystore.sh (Linux) 文件并自行填寫相關(guān)信息,運(yùn)行后,bin 目錄下會(huì)多出一個(gè) rmi_keystore.jks 文件凡傅,然后將這個(gè)文件拷貝到想要運(yùn)行的 slave 機(jī)上旺上,就可以不使用方法1
錯(cuò)誤2
Error in rconfigure() method java.rmi.ConnectException: Connection refused to host: 192.168.xxx.xxx; nested exception is:
java.net.ConnectException: Connection timed out: connect
1瓶蚂、192.168.xxx.xxx 這個(gè)IP 可能是虛擬網(wǎng)卡的 IP,關(guān)閉所有的虛擬網(wǎng)卡宣吱,只保留本地網(wǎng)絡(luò)
2窃这、檢查slave服務(wù)器的防火墻是否打開(kāi),需要關(guān)閉
3凌节、通信雙方的機(jī)器沒(méi)有識(shí)別到有效的遠(yuǎn)程IP,考慮將遠(yuǎn)程方法調(diào)用服務(wù)器的主機(jī)IP進(jìn)行固定設(shè)置洒试,再作效果檢查
4倍奢、開(kāi)始測(cè)試,但是測(cè)試速度非常慢垒棋,測(cè)試結(jié)果也是非常大的值卒煞,檢查slave服務(wù)器和被測(cè)試服務(wù)器之間是否可以 ping 通地址
第3點(diǎn)分析相應(yīng)解決方法:
Master機(jī)修改 jmeter.bat (windows)/ jmeter.sh (Liunx)
set rmi_host=-Djava.rmi.server.hostname=本機(jī)IP
// 修改set ARGS=,在其后增加一項(xiàng) %rmi_host%叼架,與其他項(xiàng)以空格間隔
if not defined JMETER_COMPLETE_ARGS (
set ARGS=%JAVA9_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %JMETER_LANGUAGE% %RUN_IN_DOCKER% %rmi_host%
) else (
set ARGS=
)
錯(cuò)誤3
Error in rconfigure() method java.rmi.ConnectException:Connection refused to host
1畔裕、查看端口是否被占用
1、更換端口
# windows doc 命令
netstat -ano | findstr "1099"
tasklist | findstr "1099"
錯(cuò)誤4
java.net.ConnectException:Connection timed out:connect
由于連接被拒絕乖订,這意味著防火墻可能已切斷連接
需要在JMeter和目標(biāo)服務(wù)器之間打開(kāi)端口
錯(cuò)誤5
Response too large to be displayed. Size: 412152 > 204800
未設(shè)置察看結(jié)果樹(shù)的大小
1扮饶、打開(kāi) [ jmeter 安裝目錄 ]\bin\user.property 文件
# 在 user.property 中,添加以下內(nèi)容并重啟jmeter:
view.results.tree.max_size=0
2乍构、右擊測(cè)試用例——添加——監(jiān)聽(tīng)器——保存響應(yīng)到文件, 填寫要保存的文件名
3甜无、將文件中的返回結(jié)果粘貼到此用例的響應(yīng)斷言中
錯(cuò)誤6
Not able to find Java executable or version. Please check your Java installation. errorlevel=2
1、errorlevel=1,當(dāng)前系統(tǒng)安裝的 jdk 版本過(guò)低
2岂丘、errorlevel=2陵究,沒(méi)有配置 jdk 環(huán)境變量所致
3、errorlevel=3奥帘,當(dāng)前系統(tǒng)安裝的 jdk 版本過(guò)低铜邮,不符合 jmeter 要求所致
通用方法:
配置對(duì)應(yīng)這個(gè) jmeter 版本的 jdk 版本的環(huán)境變量
第1點(diǎn)分析,其他解決方法:
打開(kāi) jmeter.bat 文 件寨蹋,注釋 set DUMP=-XX:+HeapDumpOnOutOfMemoryError
錯(cuò)誤7
Bad call to remote host
1松蒜、檢查 salve 機(jī)器上的 jmeter-server 是否啟動(dòng)
2、檢查 JMeter.properties 中 remote_hosts 的配置是否錯(cuò)誤
1钥庇、啟動(dòng) salve 機(jī)器上的 jmeter-server
2牍鞠、正確配置 JMeter.properties 中 remote_hosts
錯(cuò)誤8
1、Non HTTP response message: The target server failed to respond
2评姨、Non HTTP response code: java.net.SocketException
調(diào)整超時(shí)時(shí)間难述,jmeter 的 http 請(qǐng)求中,工具會(huì)默認(rèn)勾選 Use KeepAlive 吐句,在運(yùn)行時(shí)胁后,jmeter.properties 中的 httpclient.timeout 設(shè)置默認(rèn)是注銷的,也就是連接空閑嗦枢,立馬斷開(kāi)
打開(kāi) [ jmeter 安裝目錄 ]\bin\jmeter.properties 文件
根據(jù)情況設(shè)置10-60毫秒攀芯,能解決報(bào)錯(cuò)問(wèn)題,問(wèn)題還是沒(méi)有真正解決
# 相應(yīng)時(shí)間是正常測(cè)試的 2-3倍文虏,響應(yīng)時(shí)間變長(zhǎng)
httpclient.timeout=60
錯(cuò)誤9
Server failed to start: java.rmi.RemoteException: Cannot start. *** is a loopback address.
An error occurred: Cannot start. *** is a loopback address.
沒(méi)有指定主機(jī)導(dǎo)致這個(gè)錯(cuò)誤
1侣诺、修改 hosts 文件
# 將127.0.0.1 換成Linux機(jī)器的ip地址
127.0.0.1 besttest
# 或者將 127.0.0.1 besttest 這一行給注釋(#),在下面另起一行:
# 非 root 用戶獲取 IP 地址的命令氧秘,ifconfig 只有 root 用戶可以直接用
ip besttest /sbin/ifconfig
2年鸳、打開(kāi) [ jmeter 安裝目錄 ]\bin\jmeter.properties 文件
# server_ip 為每臺(tái)server自己的ip
RMI_HOST_DEF=-Djava.rmi.server.hostname=server_ip
錯(cuò)誤10
Waiting for possible shutdown message on port 4445
在 master 跑測(cè)試腳本時(shí),會(huì)一直提示如下信息丸相,導(dǎo)致測(cè)試一直跑不起來(lái)
這個(gè)是用于監(jiān)聽(tīng)shutdown message的搔确,如果不需要,可以直接設(shè)置為0即可
打開(kāi) [ jmeter 安裝目錄 ]\bin\jmeter.properties 文件
# 每臺(tái)機(jī)器要在同一局域網(wǎng)下灭忠,最好操作系統(tǒng)保持一致膳算,不然運(yùn)行master 執(zhí)行腳本有可能會(huì)提示拒絕連接的錯(cuò)誤
# 在 jmeter.properties 文件中,添加以下內(nèi)容:
jmeterengine.nongui.port=0
錯(cuò)誤11
Could not reserve enough space for 2097152KB object heap
errorlevel=1
Jmeter 內(nèi)存不足
打開(kāi) [ jmeter 安裝目錄 ]\bin\jmeter.bat 文件
# 在 jmeter.bat 文件中弛作,修改以下內(nèi)容:
set HEAP=-Xms1g -Xmx1g
錯(cuò)誤12
could not find ApacheJmeter_core.jar
找不到 jdk 環(huán)境
1涕蜂、正確安裝對(duì)應(yīng)版本的 jdk
2、正確設(shè)置環(huán)境變量
錯(cuò)誤13
jmeter.gui.action.RemoteStart: Failed to initialise remote engine java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
配置了 127.0.0.1映琳,但是未開(kāi)啟本機(jī)的 jmeter-sever.bat/jmeter-sever
開(kāi)啟本機(jī)的 jmeter-sever.bat/jmeter-sever
錯(cuò)誤14
運(yùn)行成功宇葱,響應(yīng)斷言也正確通過(guò)瘦真,但是察看結(jié)果樹(shù)里為空
模式(Mode)(采樣結(jié)果發(fā)送模式)默認(rèn)是Standard,在采樣結(jié)果產(chǎn)生后立即發(fā)送
打開(kāi) [ jmeter 安裝目錄 ]\bin\jmeter.properties 文件
# 在 jmeter.properties 文件中黍瞧,注釋以下內(nèi)容:
mode=Standard
錯(cuò)誤15
Response code: Non HTTP response code: java.net.SocketTimeoutException
Response message: Non HTTP response message: connect timed out
發(fā)生該錯(cuò)誤時(shí)诸尽,jmeter已經(jīng)連接上服務(wù)器,查看load time沒(méi)有超過(guò)設(shè)定的request timeout時(shí)間印颤,錯(cuò)誤可能的原因是您机,服務(wù)器那邊未處理該線程的請(qǐng)求,或者為保證服務(wù)能力年局,斷掉了連接际看。
為了驗(yàn)證該猜想,持續(xù)大于半小時(shí)向服務(wù)器發(fā)送該并發(fā)數(shù)量的請(qǐng)求矢否,一段時(shí)間后仲闽,request收到503的response,證明猜想
無(wú)
錯(cuò)誤16
Java.NET.BindException: Address already in use: connect
短時(shí)間內(nèi)new socket操作很多,而socket.close()操作并不能立即釋放綁定的端口,而是把端口設(shè)置為TIMEWAIT 狀態(tài),過(guò)段時(shí)間(默認(rèn)240s)才釋放,(用netstat -na可以看到),最后系統(tǒng)資源耗盡(windows上是耗盡了pool of ephemeral ports ,這段區(qū)間在1024-5000之間)
在運(yùn)行 JMeter agent 的機(jī)器上僵朗,添加注冊(cè)表?xiàng)l目HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
MaxUserPort 65334
TcpTimedWaitDelay 30
錯(cuò)誤17
jmeter腳本運(yùn)行的過(guò)程中赖欣,服務(wù)器性能參數(shù)沒(méi)有明顯變化 (CPU,內(nèi)存验庙,I/O)顶吮,但request的響應(yīng)時(shí)間很長(zhǎng)。
觀察jmeter agent機(jī)器網(wǎng)絡(luò)使用情況粪薛,網(wǎng)絡(luò)使用持續(xù)達(dá)到帶寬的限制峰值悴了。request 發(fā)送的過(guò)程中pending在網(wǎng)絡(luò)中,實(shí)際并發(fā)的request并沒(méi)有同一時(shí)間到達(dá)服務(wù)器违寿,所以服務(wù)器沒(méi)有明顯變化湃交。
提高jmeter agent機(jī)器網(wǎng)絡(luò)帶寬。
錯(cuò)誤18
java.io.IOException: Error writing to server
java.net.SocketException: Connection reset
可能是本機(jī)的 JVM 太小了
打開(kāi) [ jmeter 安裝目錄 ]\bin\jmeter.bat 文件
# 在 jmeter.bat 文件中藤巢,修改以下內(nèi)容:
set HEAP=-Xms256m -Xmx1024m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=512m
錯(cuò)誤19
java.net.SocketException: Unrecognized Windows Sockets error: 0: recv failed
無(wú)
打開(kāi) [ jmeter 安裝目錄 ]\bin\jmeter.properties 文件
# 在 jmeter.properties 文件中搞莺,修改以下內(nèi)容:(錯(cuò)誤率降到0.25%)
javax.net.debug=ssl:handshake:verbose
錯(cuò)誤20
java.net.SocketTimeoutException: Read timed out
無(wú)
打開(kāi) [ jmeter 安裝目錄 ]\bin\jmeter.properties 文件
# 在 jmeter.properties 文件中,修改以下內(nèi)容:(錯(cuò)誤率降到0)
javax.net.debug=true
錯(cuò)誤21
For performance it is advised to check "Interpret Condition as Variable Expression"
and use __jexl3 or __groovy evaluating to true or false or a variable that contains true or false.
${JMeterThread.last_sample_ok) can be used to test if last sampler was successful
對(duì)于4.x之后的版本 JMeter 中的 If Controller菌瘪,在Expression輸入框中直接輸入判斷的表達(dá)式腮敌,如1 == 1阱当、${threadNum} > 2俏扩,而不做求值計(jì)算(true/false)就執(zhí)行JMeter是沒(méi)有效的,達(dá)不到預(yù)期的效果弊添。采用JMeter比較早期的版本(如:2.x版本)录淡,直接就寫判斷的表達(dá)式,并沒(méi)有作真假求值運(yùn)算也能被識(shí)別
1油坝、在Expression輸入框中嫉戚,建議將判斷條件解釋為變量表達(dá)式刨裆,并使用__jexl3函數(shù)或__groovy函數(shù)對(duì)該變量表達(dá)式求值為true/false
2、可輸入值為true/false的變量
3彬檀、${JMeterThread.last_sample_ok}可用于檢測(cè)最后一個(gè)取樣器是否成功執(zhí)行
錯(cuò)誤22
java.lang.IllegalStateException: Engine is busy - please try later
1帆啃、可能是防火墻規(guī)則被阻止
2、控制機(jī)窍帝、執(zhí)行機(jī)未設(shè)置需要連接的IP
1努潘、關(guān)閉控制機(jī)、執(zhí)行機(jī)的防火墻
2坤学、打開(kāi) [ jmeter 安裝目錄 ]\bin\jmeter-server 文件
# 在 jmeter-server 文件中,控制機(jī)和執(zhí)行機(jī)都需要設(shè)置需要連接的 IP
# 例如:當(dāng)前機(jī)器(控制機(jī)或者執(zhí)行機(jī))的 IP 為 192.168.40.15,添加以下內(nèi)容:
RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.40.15
3畜侦、打開(kāi) [ jmeter 安裝目錄 ]\bin\system.properties 文件
# 在 system.properties 文件中池充,控制機(jī)和執(zhí)行機(jī)都需要設(shè)置需要連接的 IP
# 例如:當(dāng)前機(jī)器(控制機(jī)或者執(zhí)行機(jī))的 IP 為 192.168.40.15,添加以下內(nèi)容:
java.rmi.server.hostname=192.168.40.15
錯(cuò)誤23
Response code: Non HTTP response code:org.apache.http.conn.ConnectTimeoutException
Response message: Non HTTP responsemessage: Connect to 10.15.107.112:9089 timed out
Non HTTPresponse code 說(shuō)明沒(méi)有收到來(lái)自服務(wù)器的 response飞苇。
導(dǎo)致 ConnectTimeoutException 錯(cuò)誤的可能有 JMeter 本身問(wèn)題菌瘫,也可能是服務(wù)器問(wèn)題。
通過(guò)分布式運(yùn)行 JMeter 的方式來(lái)消除 JMeter 本身的影響