Jmeter 分布式測試環(huán)境搭建 on Centos

Jmeter分布式執(zhí)行原理:

1、Jmeter分布式測試時(shí),選擇其中一臺作為調(diào)度機(jī)(master/Controller),其它機(jī)器做為執(zhí)行機(jī)(slave/Agent)。
2、執(zhí)行時(shí),master會(huì)把腳本發(fā)送到每臺slave上,slave 拿到腳本后就開始執(zhí)行,slave執(zhí)行時(shí)不需要啟動(dòng)GUI,應(yīng)該是通過non-gui命令行模式執(zhí)行的。
3、執(zhí)行完成后,slave會(huì)把結(jié)果回傳給master,master會(huì)收集所有slave的信息并匯總。

注意:
(1)每一臺jmeter遠(yuǎn)程服務(wù)器(slave機(jī)器)都執(zhí)行相同的測試計(jì)劃,jmeter不會(huì)在執(zhí)行期間做負(fù)載均衡,每一臺服務(wù)器都會(huì)完整地運(yùn)行測試計(jì)劃,所以根據(jù)木桶原理,性能最差的slave可能會(huì)影響測試;
(2)采用JMeter遠(yuǎn)程模式并不會(huì)比獨(dú)立運(yùn)行相同數(shù)目的非GUI 測試更耗費(fèi)資源。但是,如果使用大量的JMeter 遠(yuǎn)程服務(wù)器,可能會(huì)導(dǎo)致客戶端過載,或者網(wǎng)絡(luò)連接發(fā)生擁塞;
(3)默認(rèn)情況下,master機(jī)器是不執(zhí)行參與生成并發(fā)數(shù)據(jù)的;
(4)調(diào)度機(jī)(master)和執(zhí)行機(jī)(slave)最好分開,由于master需要發(fā)送信息給slave并且會(huì)接收slave回傳回來的測試數(shù)據(jù),所以master自身會(huì)有消耗,所以建議單獨(dú)用一臺機(jī)器作為master。

這些簡介都是從其他童鞋那里抄的,之前在網(wǎng)上找文檔的時(shí)候,發(fā)現(xiàn)都是windows作為master,本文主要share Centos 的機(jī)器搭建的過程,下面是具體的步驟:

  1. 配置安裝Java & Jmeter
  2. 配置 slave
  3. 配置 master
  4. non-gui 下,run Jmeter 腳本

  1. 配置安裝Java & Jmeter

安裝Java,自己找文檔去吧,我用的是1.8

1.png

安裝Jmeter
Jmeter幫助文檔:http://jmeter.apache.org/usermanual/index.html
Jmeter下載地址:http://jmeter.apache.org/download_jmeter.cgi

image.png

進(jìn)入到自己的目錄(/home/username)

這里要配置環(huán)境變量,因?yàn)楣綜entos設(shè)置,一般測試賬號拿不到root 權(quán)限,于是把環(huán)境變量設(shè)置在 /home/username/.bashrc里面,

image.png

export JMETER_HOME=/home/langzm/apache-jmeter-3.2
export JAVA_HOME=/opt/java/jdk1.8.0_91
export JAVA_BIN=/opt/java/jdk1.8.0_91/bin
export PATH=$PATH:$JAVA_HOME/bin:$JMETER_HOME/bin

配置以后,執(zhí)行source ~/.bashrc 或者 source /home/username/.bashrc,在哪兒執(zhí)行都沒有問題。
安裝成功的標(biāo)志:

image.png

  1. 配置slave
    在配置安裝完 Java 和 Jmeter 后,我們要配置兩個(gè)地方,slave 的IP和端口。

分別在s1、s2、s3(slave機(jī)器)上,進(jìn)入%JMETER HOME%/bin/目錄,
打開“jmeter.properties”,配置執(zhí)行機(jī)遠(yuǎn)程啟動(dòng)端口(默認(rèn)為 1099),
如改為:
server_port=1099
server.rmi.localport=1099

打開“jmeter-server”,配置執(zhí)行機(jī)遠(yuǎn)程啟動(dòng)IP
如改為:
DIRNAME=dirname $0
RMI_HOST_DEF=-Djava.rmi.server.hostname=10.31.121.115

啟動(dòng)slave server:

image.png

Using local port: 1099
Created remote object: UnicastServerRef [liveRef: [endpoint:10.31.121.115:1099,objID:[-19017b68:15d1c7583bc:-7fff, -5417132512864584786]]]

之前沒有配置1099端口和IP,造成如下情況:

image.png

后果是master 連不上slave,沒有starting ...連接成功的log。


  1. 配置master
    在配置安裝完 Java 和 Jmeter 后,進(jìn)入%JMETER HOME%/bin/目錄,
    編輯 jmeter.properties 這個(gè)文件,修改添加:
    remote_hosts=172.16.129.155:1099,172.16.129.43:1099
    (slave的IP)
    server_port=1099
    client.rmi.localport=0
    server.rmi.port=1234
    server.rmi.localport=1099

進(jìn)入%JMETER HOME%/bin/目錄,編輯 jmeter.bat這個(gè)文件,修改添加:
set rmi_host=-Djava.rmi.server.hostname=本機(jī)ip(控制器ip)
Set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%


  1. non-gui 下,run Jmeter 腳本

參考文檔:
http://www.cnblogs.com/fengpingfan/p/5586711.html
這個(gè)可以推薦看一下,我就硬搬過來了,

先附上參數(shù)表:

image.png

Demo 1:執(zhí)行最簡單的Jmeter例子

自己寫個(gè)test job,里面只訪問百度,然后把job 放到master 上面去跑;


image.png

baidu.jmx 配置好后,copy到master;

image.png

command:
jmeter -n -t baidu.jmx

Demo 2:指定Jmeter結(jié)果文件及日志路徑

jmeter -n -t /home/langzm/apache-jmeter-3.2/testcase/demo_500_qps.jmx -l /home/langzm/apache-jmeter-3.2/result/demo_500QPS_result.csv

Demo 3:分布式(遠(yuǎn)程)執(zhí)行單個(gè)服務(wù)器
jmeter -n -t /home/langzm/apache-jmeter-3.2/testcase/demo_500_qps.jmx -R 11.71.161.115:1099 -l /home/langzm/apache-jmeter-3.2/result/demo_500QPS_result.csv

Demo 4:多個(gè)分布式(遠(yuǎn)程)執(zhí)行多個(gè)服務(wù)器
jmeter -n -t /home/langzm/apache-jmeter-3.2/testcase/demo_500_qps.jmx -R 11.71.161.115:1099,11.27.221.182:1099,11.81.198.142:1099 -l /home/langzm/apache-jmeter-3.2/result/demo_1500QPS_result.csv

正經(jīng)的log:

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容