---
# System prepended metadata

title: JMeter 分布式測試(殭屍電腦)
tags: [JMeter]

---

# JMeter分布式測試
###### tags: `壓力測試` 
[ToC]

## 概念
Jmeter 分散式測試時,客戶端機器（window 系統或 Linux 伺服器）作為一個控制器 Master，控制多台 slave 機器的操作。

![分布式压测原理](https://hackmd.io/_uploads/B1_N4L44p.png)

## 配置
* Master機
打開bin/jmeter.properties
    1. 修改remote_hosts(填入Slaves的IP)
remote_hosts=IP1:PORT1 , IP2:PORT2 , ... , IPn:PORTn
    2. 修改server_port
server_port=1099
    3. 關閉SSL
server.rmi.ssl.disable=true
其中remote_hosts也可以加入自己的IP(例如:127.0.0.1)

* Slaves機
打開bin/jmeter.properties
    1. 修改server.rmi.localport
server.rmi.localport=1099
    2. 修改server_port
server_port=1099
    3. 關閉SSL
server.rmi.ssl.disable=true

* IP相關問題
    1. 電腦當前IP要在CMD使用ipconfig，通常是看IPv4位址
    2. 在某些特殊情況，執行jmeter-server.bat時會發現endpoint的IP跟本機的IP不相同，這時候需要多調整bin/system.properties的java.rmi.server.hostname參數成本機的IP

![image](https://hackmd.io/_uploads/BJoAYdNVT.png)

## 執行
進入Jmeter GUI後在工具列點擊```Run > Remote Start(All)```

![image](https://hackmd.io/_uploads/SyxhxKVE6.png)

* Remote Start：可指定要運行的Slaves機
* Remote Start All：運行remote host中所有的Slaves機

執行完後需要手動在工具列點擊```Run > Remote Stop(All)```

* Remote Start：僅停止指定的Slaves機
* Remote Start All：停止所有remote host中所有的Slaves機