爲了讓jmeter工具提供更強大的負載能力,jmeter提供了多臺機器同時產生負載的機制。
1、申請5臺Linux服務器,配置好點。
2、分佈式測試原理:其中一臺做爲主控機/調度機(server),其餘爲壓力機(agent)java
3、處理過程:linux
1)調度機server啓動之後,會拷貝本地的jmx文件分發到遠程的agent機器上;apache
2)agent機器拿到腳本之後啓動命令行模式去執行腳本,對於每臺agent機器拿到的腳本都是同樣的,因此若是jmx腳本爲50個線程跑3分鐘,那麼實際併發就是50*5=250個線程併發跑3分鐘;windows
3)執行時,agent會把執行得到的數據結果傳給server機器,server機器會收集全部agent機器的信息並彙總,這樣server機器上就存在一份全部agent機器彙總的數據結果。服務器
4、Jmeter分佈式壓測環境搭建網絡
一、分佈式環境壓力服務器要求:併發
須要server(控制機)和agent(壓力機),agent搭建在linux服務器環境下,server搭建在Linux或windows環境下。
壓力測試瓶頸大都在帶寬上面,須要保證壓力機的帶寬要比服務器的帶寬高,否則壓力上不去。
須要保證agent和server都在一個網絡中,且在多網卡環境須要保證啓動的網卡都在一個網段。
須要保證server和agent之間的時間同步。
關閉防火牆分佈式
二、Windows部署jmeter工具
(1)部署jdk環境,配置path變量
(2)直接去官網下載最新的二進制源碼包便可。
(3)解壓jmeter到指定目錄,設置path變量,安裝完成以後,在命令行運行jmeter命令,若是能夠正常啓動jmeter,說明環境配置ok。測試
三、Linux部署jmeter
(1)jmeter運行環境依賴java的jdk,因此須要安裝jdk,jmeter5.0版本以上須要安裝jdk1.8及以上版本;首先下載:jdk-8u131-linux-x64.tar.gz、apache-jmeter-5.0.zip,並上傳至服務器,並解壓:
tar zxvf jdk-8u131-linux-x64.tar.gz --mv jdk-8u131-linux-x64 jdk1.8
unzip -o apache-jmeter-5.0.zip --mv apache-jmeter-5.0 jmeter
(2)配置環境變量:vi /etc/profile
在文件的最後面加上須要配置的環境變量,紅色路徑能夠根據自身環境進行修改:
JAVA_HOME=/root/gss/jdk1.8
JRE_HOME=$JAVA_HOME/jre
JMETER_HOME=/root/gss/jmeter
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$JMETER_HOME/bin/
export JMETER_HOME=/root/gss/jmeter
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH
(3)當即生效配置文件,執行命令:source /etc/profile
檢查安裝結果:java -version、jmeter --version
(4)修改主控機啓動配置使其能夠調度全部壓力機:
vi /root/gss/jmeter/bin/jmeter.properties
remote_hosts=127.0.0.1:1099,192.xx.xx.15:1099,192.xx.xx.16:1099,192.xx.xx.17:1099,192.xx.xx.18:1099(多臺slave以前用 "," 隔開)
#server.rmi.ssl.disable=false # 此爲必改項,放開註釋,false改成true
說明:
一、主控機能夠只是server,也可既是server也是agent:若是自身作壓力機,將127.0.0.1也配置上;不然,不須要配置。
二、各個壓力機的端口號可修改,也可不修改:若修改,就按新修改的端口號進行配置;沒修改,jmeter默認端口號1099,直接配置也能夠。
#server_port=1099 #端口號修改:放開註釋,隨意修改
(5)修改全部服務器的jmeter配置:
5、上傳腳本到主控機上,執行腳本
jmeter -n -t login.jmx -r -l login.jtl -e -o /root/gss/report-login
jmeter參數介紹: