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

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

分佈式不成功,解決方案:apache

一、master端和slave端要ping通vim

二、ping通後,telnet ip port (Linux端),看一下1099端口是否被佔用bash

三、防火牆網絡

四、jmeter的log,若是請求發過去,可是沒有返回結果,看看網段的問題分佈式

主要步驟:oop

master端修改:測試

一、修改remote_hosts=ip:port:改爲要啓動的Linux機的ip以及端口spa

slave端修改:通常來說不須要修改任何東西,但事實可能會有幾個問題:3d

將jmeter.properties的文件修改

一、若是要改端口,則修改

二、找不到指定文件:ssl.disable 改爲true

 

遇到的問題:

問題1:路徑問題

腳本最好放在bin目錄下。

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

解決方法:

一、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用戶能夠直接用

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

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

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

errorlevel = 1

這個問題怎麼解決???

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

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

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

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

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

 

問題四、一分佈式執行,就卡住不懂,通常是炸不到ip了,因爲多個網卡形成的

方法1、禁用無關網卡

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

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

解決思路:

Jmeter遠程執行踩坑記錄:

一、按照教程修改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

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

三、啓動slave機器jmeter-server.bat

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

五、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)

六、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環境變量配置,反覆查看沒有問題

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

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

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

我這本機ip是192.168.1.17,這裏識別爲了18

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

六、第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以上都沒有這個問題

相關文章
相關標籤/搜索