第一坑:啟動壓力機的時候,直接./jmeter-server,會報如下錯誤
錯誤原因:127.0.0.1是本機, 一個回路地址, 沒有指定地址
正確的啟動方式:啟動命令加一個參數, IP地址寫壓力機對應的地址
./jmeter-server -D java.rmi.server.hostname=118.24.178.224
第二坑:
遇到的問題:
啟動remote測試后,Agent 機器 收到任務,且控制台顯示:”Starting the test on host 192.168.1.132:1099 @ ***“,說明控制機分派上agent機上的測試成功,但是 一直卡在這里不動了,控制機一直沒有顯示 任務執行狀況以及收到測試結果(任務一直不結束,卡住了)。
解決方法:
(1)telnet 192.168.1.132 1099 是通的,說明 控制機 連agent 機是OK了,問題排除。
(2)查看 agent機上 c:\apache-jmeter-2.13\bin 中 jmeter-server.log 日志文件,發現有錯誤: jmeter.samplers.RemoteListenerWrapper: testStarted(host) java.rmi.ConnectException: Connection refused to host: 169.254.123.36; nested exception is:
java.net.ConnectException: Connection timed out: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source)
at $Proxy1.testStarted(Unknown Source)
at org.apache.jmeter.samplers.RemoteListenerWrapper.testStarted(RemoteListenerWrapper.java:85)
at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:216)
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:336)
at java.lang.Thread.run(Unknown Source)
推斷原因是 agent 連不了控制機,被拒絕,連接超時。
問題產生了: 為何 控制機 IP變成了 169.254.123.36, IP不是 192.168.1.117 嗎?(問題的根源在於:我安裝的VMware的一個windows虛擬機的網絡設置成了“Bridge 並勾選 Replicate physical network IP address所以在controller機器的網絡路由設置中,顯示的網絡連接為:VirtualBox Host-Oly Network,在這個連接上右鍵,選擇“Disable“,禁用掉,然后重新運行jmeter-server.bat,在窗口中發現IP已經正確了,這樣問題就解決了) 估計問題就在這里。
(3) 果斷換了一台新安裝的 windows 機器作為控制機,然后 重新試了一下,沒有問題。在控制機運行測試,agent機器會收到測試“Starting the test on host 192.168.1.132:1099 @ **”,執行結束后,agent機上有日志“Finished the test on host 192.168.1.132:1099 @ ***”,控制機上也有相應的測試結果,問題解決。
總結: 問題還是 連接的問題,如果控制機和agent機連接有問題,就會有此類問題,所以建議 控制機和測試機都是干凈的機器,這樣避免 安裝了一些軟件,修改了 C:\Windows\System32\drivers\etc中HOST文件,等問題。
這個問題還有一種情況:控制機和負載機在不同的局域網,也會導致這個問題,所以壓力機和控制機盡量在同一個局域網內
測試中發現的問題:
(1) 發現用一台 client 200個用戶測試和 用分布式 2個agent 各自100個用戶,測試出來的結果 差別太大,不知道為什么?
(2) 發現用一台 client 200個用戶測試和 用分布式 2個agent 各自200個用戶,測試出來的結果 結果基本是一致的,不知道為什么?
如果真是這樣的話,那么jmeter分布式測試出來的結果太不科學了,我們到底相信那個? 問題持續研究中......
這兩個問題解決方案:
把controller機器,2個agent機器的時間設置一致,再次測試,問題基本解決了。
jmeter相關問題可以多看日志:
controller的日志看bin目錄下面的jmeter.log
壓力機的日志看bin目錄下面的jmeter-server.log
---------------------
作者:蝙蝠X
來源:CSDN
原文:https://blog.csdn.net/test_xhz/article/details/81877455
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!