JMeter在linux上分布式壓測遇到的坑(三)


master和slave機要在同一網段內,才能做分布式(Jmeter要配環境變量,這樣不用手動起server)

分布式不成功,解決方案:

1、master端和slave端要ping通

2、ping通后,telnet ip port (Linux端),看一下1099端口是否被占用

3、防火牆

4、jmeter的log,如果請求發過去,但是沒有返回結果,看看網段的問題

主要步驟:

master端修改:

1、修改remote_hosts=ip:port:改成要啟動的Linux機的ip以及端口

slave端修改:一般來講不需要修改任何東西,但事實可能會有幾個問題:

將jmeter.properties的文件修改

1、如果要改端口,則修改

2、找不到指定文件:ssl.disable 改成true

 

遇到的問題:

問題1:路徑問題

腳本最好放在bin目錄下。

問題2:Linux運行JMeter server 出現說 "is a loopback address",回環地址有問題

解決方法:

1、vi /etc/hosts     修改hosts文件,127.0.0.1 besttest   將127.0.0.1 換成Linux機器的ip地址,或者將127.0.0.1 besttest 這一行給注釋(#),在下面另起一行:ip besttest

/sbin/ifconfig---非root用戶獲取ip地址的命令,ifconfig只有root用戶可以直接用

2、啟動的時候,指定一個ip地址,在JMeter的bin目錄下,有個文件叫:jmeter-server(如果是Linux就修改.sh文件),這個的xxx.xxx.xxx.xxx換成Linux的ip地址

問題3、jmeter-server啟動,報錯說系統找不到指定文件

java.io.FileNotFoundExpection :rmi_keystore.jks(系統找不到指定文件)

errorlevel = 1

這個問題怎么解決???

方式1、將jmeter.properties的ssl.disable改成true(不進行文件校驗)

方式2、如果slave機在Linux機上,就運行create-rmi-keystore.sh文件;如果是slave機在window上,就運行create-rmi-keystore.bat文件

 運行后,自行填寫相關信息

運行后,bin目錄下會多出一個rmi_keystore.jks文件

這個文件拷貝到想要運行的slave機上,就不用方法1就可以,就是個文件校驗的問題

 

問題4、一分布式執行,就卡住不懂,一般是炸不到ip了,由於多個網卡造成的

方法一、禁用無關網卡

方法二、jmeter -Djava.rmi.server.hostname=xxx.xxx.xxx.xxx(ip是你要啟動的ip,不是jmeter.server)

 問題5、Jmeter遠程執行,slave機器顯示調用成功,但是master機器沒有返回測試結果解決,這里和問題1類似

解決思路:

Jmeter遠程執行踩坑記錄:

1、按照教程修改jmeter.properties文件中 remote_hosts=127.0.0.1 為 remote_hosts:192.168.5.158:1099,192.168.5.160:1099

其中192.168.5.160為master機器內網IP

2、修改slave機器jmeter.properties文件中remote_hosts=127.0.0.1為 remote_hosts=192.168.5.158:1099

3、啟動slave機器jmeter-server.bat

4、master機器執行(GUI,非GUI)jmeter腳本(無參數文件)

5、slave機器服務終端顯示,但是一個非常簡單的腳本,執行超級慢,感覺不應該:

Starting the test on host 192.168.5.158:1099 @ Fri Aug 17 14:00:44 GMT+08:00 2018 (1534485644989)
Finished the test on host 192.168.5.158:1099 @ Fri Aug 17 14:05:18 GMT+08:00 2018 (1534485918786)

6、master機器沒有返回結果,非GUI模式下執行顯示:

Starting remote engines
Starting the test @ Fri Aug 17 15:48:37 GMT+08:00 2018 (1534492117929)
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445

之后沒有執行結果返回。

解決:

1.懷疑jmeter環境變量配置,反復查看沒有問題

2、懷疑jmeter.properties文件修改錯誤,反復查了master、slave機器的配置文件,沒有問題

3、將問題轉向機器IP,查看master機器IP,slave機器IP,都用的固定IP,沒有問題

4、重新啟動master機器的jmeter-server.bat,發現了和slave機器異樣的地方,master機器顯示的endpoint:IP是Vmware network Adapter vmnet1(安裝VMWare的虛擬IP),jmeter-server啟動的時候自動識別了虛擬機IP,沒有識別本地網絡IP.

我這本機ip是192.168.1.17,這里識別為了18

5、將網絡適配器中的虛擬適配器禁用掉,重新啟動jmeter-server.bat,endpoint變成了本地IP,再次嘗試遠程執行,成功,復雜的腳本執行也很快。

6、第5步沒有解決,用問題1中的方法

原來真是這里配了為:192.168.1.18.怪不得,改為192.168.1.17就好了。

需要重啟么???

需要重啟,hosts文件才生效

 

問題6:(解決問題5)控制機運行jmx腳本時,會提示如下信息,導致測試跑不起來:
Waiting for possible shutdown message on port 4445
進入目錄/apache-jmeter/bin:
vim jmeter.properties

 

這個是用於監聽shutdown message的,如果不需要,可以直接設置為0即可。(小於1000都可以)

問題7: jmeter -v 時提示bash: /home/ling/apache-jmeter/bin/jmeter: 權限不夠

解決:進入該路徑下,執行命令chmod 777 *

問題8:報告中亂碼的問題
解決:聽說使用高版本的jmeter已經解決了這個問題,可能jmeter3.2以上都沒有這個問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM