使用JMeter 做性能測試的時候, 然后需要模擬大量的請求, 單台電腦是不夠的, 這時候必須使用Jmeter 提供的分布式測試的功能
JMeter 分布式測試的架構
1. 選擇一台機器做Controller, 其他機器做Agent(執行測試的機器)
2. Contrller 機器, 會把腳本發送給Agent, 機器。 Agent拿到腳本后開始,並且執行測試的時候不需要啟動GUI
3. 執行完成后, Agent會把結果發送給 Controller, 我們只需要在Controller 機器上匯總測試結果
架構如下
JMeter Agent 的配置
1. Agent 的機器上, 下載JMeter (JMeter的版本要和),
2. 添加環境變量 JMETER_HOME = c:\apache-jmeter-2.13 這個是你 JMeter的路徑
3. 配置端口號, 打開 JMeter的bin目錄下, 找到jmeter.properties 文件, 修改如下兩個配置
server_port=1099 server.rmi.localport=1099
4. 啟動 jmeter-server.bat , 如下圖。 端口號是:1099 如下圖所示:
5. 如果需要配置多台Agent, 重復上面幾個步驟就行
Controller機器的配置和執行
1. 找到Jmeter的bin目錄下, jmeter.properites文件, 修改下面配置,指向Agent機器, 多台Agent 使用 “,” 分隔
remote_hosts=10.0.0.8:1099,10.0.0.9:1099
2. 打開Jmeter, 新建幾個簡單的腳本, 點擊 "運行" 菜單, 可以看到 有 "遠程啟動" 和 “遠程全部啟動” 選擇全部啟動, 可以看到腳本成功執行了。 看起來跟本機執行一樣
3. 回頭看下Agent 上, 可以看到
特別要注意的地方
1. 每台機器(Controller和Agent)上的JMeter以及插件都要一致, 這樣可以免去一些不必要的麻煩
2. 有時候Controller 連不上Agent, 需要關閉Agent 機器上的防火牆。
3. 有時候Controller 連不上Agent, 需要更換Agent 上的端口號
4. JMeter 引用了一些文件路徑。 那確保Agent機器上也存在這樣的文件, 並且文件路徑也要設置一樣