Jmeter分布式測試
本文為原創,轉載請注明出處:https://www.cnblogs.com/supiaopiao/p/10856821.html
一、為什么要用分布式測試?
在使用Jmeter進行性能測試時,如果並發數比較大(比如項目需要支持1000並發),單台主機的配置(CPU和內存)可能無法支持,這時可以使用Jmeter提供的分布式測試的功能。
二、Jmeter分布式執行原理:

Jmeter分布式測試時,本地jmeter作為控制機(master),其它機器做為執行機(slave)。執行時,master會把腳本發送到每台slave上,slave 拿到腳本后就開始執行。執行完成后,slave會把結果回傳給master,master會收集所有slave的信息並匯總。
三、配置:
注意:windows和linux上的jmeter的版本一致會比較好,將windows和linux上的防火牆都關閉。
(一)控制機(master)配置

Windows系統上,將下載下來的jmeter解壓后,修改apache-jmeter-5.1.1\bin目錄里的jmeter.properties文件,在260行新增remote_hosts配置,配置里配置的是兩台slave主機的ip和slave主機里安裝的jmeter的端口號。
(二)執行機(slave)配置

1. 上傳jmeter到slave服務器
因為jmeter需要有jdk的支持,所以將jdk和jmeter都上傳到slave主機的/software文件夾下。

2. 解壓jdk和jmeter后,配置環境變量
[root@localhost ~]# vim /etc/profile

| #java環境變量 export JAVA_HOME=/software/jdk1.8.0_131/ export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar #jmeter環境變量 export JMETER_HOME=/software/apache-jmeter-5.1.1 export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH export PATH=$JMETER_HOME/bin/:$PATH |
3. 修改jmeter部分配置
打開/ apache-jmeter-5.1.1/bin目錄
(1)修改jmeter.properties文件

| remote_hosts=192.168.0.132 #ip是這台slave主機的ip server_port=1098 #端口號是jmeter自定義的端口號,默認是1099 |
備注:該remote_hosts和server_port配置需要和本地master的jmeter.properties文件里新增的260行配置一致。

| server.rmi.localport=1098 |

| server.rmi.ssl.disable = true #否則遠程執行,會報一個ssl錯誤 |
#防止響應回來的數據有中文亂碼

| jmeter.save.saveservice.response_data=true jmeter.save.saveservice.samplerData=true |
(2)修改jmeter-server文件
配置這台slave主機的ip
RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.0.132

4. 啟動各個slave上的jmeter
[root@localhost bin]# jmeter-server
(三)配置多台slave只需要參照文檔(二)進行配置即可。
四、執行測試
本地遠程連接slave主機上的jmeter,並執行腳本(有兩種啟動方式)

例如:本地jmeter腳本是往數據庫里添加隨機數據,循環20次。


遠程連接兩台服務器上的jmeter執行后,數據庫里就會有40條數據,並且結果樹里也會收集到所有slave主機上的jmeter運行結果信息,到此一個簡單的分布式測試就完成了。
