1 windows環境
1.1 配置環境變量
安裝jdk-8u151-windows-x64.exe,無腦下一步
添加JAVA_HOME
C:\Program Files\Java\jdk1.8.0_151
如下圖
添加JMETER_HOME
D:\辦公\3.軟件\jmeter5.1+java1.8\apache-jmeter-5.3
如下圖
添加CLASSPATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JMETER_HOME\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar
如下圖
添加Path
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
%JMETER_HOME%\bin
如下圖
1.2 修改Jmeter配置文件
#D:/**/apache-jmeter-5.3/bin/jmeter.properties
server.rmi.ssl.disable=true # 改成true
#添加負載機:
remote_hosts=172.168.0.2:1099,172.168.0.3:1099,172.168.0.4:1099
1.3啓動jmeter
根據測試需求配置需要的線程(這裏創建一個web接口的測試模板提供參考)
添加請求頭header
測試地址根據需求填寫,注意下圖要勾選使用keepalive
(不勾選keep-alive的時候,當建立連接,數據傳輸完畢之後,服務器就會率先發起斷開連接的操作,這個時候連接的狀態爲TIME_WAIT,並會保持2MSL(即兩倍的分段最大生存期)。處於TIME_WAIT狀態的連接佔用的資源不會被內核釋放,所以會嚴重影響服務器的處理能力,甚至耗盡socket,導致其他的請求不能處理。)
單機壓測,查看報告
1.4啓動分佈式jmeter
開啓slave
把安裝包分發到slave機器
如上配置文件中填寫的
172.168.0.2,172.168.0.3,172.168.0.4
在slave機上啓動客戶端jmeter-server.bat
啓動後,如下圖看到slave已經啓動。
slave機啓動後,在master選擇 運行,遠程啓動/遠程啓動所有,就可以分佈式的多臺slave機一起壓測了。
2 linux環境
2.1 安裝jdk+jmeter5.3
1)下載rpm包jdk-8u101-linux-x64.rpm上次到服務器
2)安裝jdk-rpm包
rpm -ivh jdk-8u101-linux-x64.rpm
3)驗證安裝是否生效
java -version
4)jmeter上傳於解壓
上傳apache-jmeter-5.3.zip到服務啓
#解壓
#解壓
unzip apache-jmeter-5.3.zip -d /usr/local/
chmod 777 /usr/local/apache-jmeter-5.3/bin/jmeter
chmod 777 /usr/local/apache-jmeter-5.3/bin/jmeter-server
2.2 配置環境變量
修改/etc/profile文件,並添加:
#vi /etc/profile
#插入一下內容
export JMETER_HOME=/usr/local/apache-jmeter-5.3
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH
配置的環境變量即可生效
source /etc/profile
驗證jmeter安裝是否生效
jmeter --version
2.3 環境優化
1)配置jmeter的使用內存,根據實際服務器和測試需求量來修改
vi /usr/local/apache-jmeter-5.3/bin/jmeter
2)優化linux內存參數
修改limits.conf文件,並添加:
#vi /etc/security/limits.conf
* soft nofile 102400
* hard nofile 102400
* soft nproc 65535
* hard nproc 65535
重新打開SSH終端,執行如下命令查看是否生效
ulimit -n
修改/etc/sysctl.conf文件,並添加:
vi /etc/sysctl.conf
net.ipv4.tcp_syncookies = 0
fs.file-max = 12553500
fs.nr_open = 12453500
kernel.shmall= 1048576
kernel.shmmax = 1887436
kernel.msgmax = 65536
kernel.sysrq = 0
kernel.pid_max= 65536
net.core.netdev_max_backlog = 2000000
net.core.rmem_default = 699040
net.core.rmem_max = 50331648
net.core.wmem_default = 131072
net.core.wmem_max = 33554432
net.core.somaxconn = 65535
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_mem = 1048576 1572864 2097152
net.ipv4.tcp_rmem = 4096 4194304 8388608
net.ipv4.tcp_wmem = 4096 4194304 8388608
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_window_scaling = 1
vm.swappiness = 0
#TCP connection recovery
net.ipv4.tcp_max_tw_buckets = 6000000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.route.max_size = 5242880
net.ipv4.ip_forward = 1
#0表示不開啓檢查時間錯,建議設置0
net.ipv4.tcp_timestamps = 0
#開啓對於TCP時間戳的支持,若該項設置爲0,則下面一項設置不起作用
#TCP connection manager
net.ipv4.tcp_max_syn_backlog = 655360
net.ipv4.tcp_syn_retries = 6
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 6
#TCP keepalive
net.ipv4.ip_local_port_range = 1025 65534
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
輸入下面的命令,讓內核參數生效:
sysctl-p
2.4 修改Jmeter配置文件
#vi /usr/local/apache-jmeter-5.3/bin/jmeter.properties
server.rmi.ssl.disable=true # 改成true
#添加負載機:
remote_hosts=172.168.0.2:1099,172.168.0.3:1099,172.168.0.4:1099
2.5 修改jmx文件
通過windows打開jmeter,同上面windows配置把需要壓測的信息配置完成後,保存爲****.jmx文件,上傳到linux服務。
2.6 啓動jmeter
1)先分別啓動slave上的服務,命令如下
jmeter-server -Djava.rmi.server.hostname=172.168.0.2 #本地IP
2)啓動master,命令如下
jmeter -n -t ****.jmx -r -l /tmp/result/test.jtl -e -o /tmp/report
參數 n:非gui運行
t:指定測試腳本
R:指定多少個 agent 啓動並參與測試
r: 代表全部 agent 啓動並參與測試
l:生成測試結果文件
2.7 打包查看測試報告
將linux下的report打包成zip,然後導出到windows下查看index.html測試報告