linux下部署jmeter的分散式測試功能,分析報告
本次文章只是介紹部署過程,執行示例,並沒有做分散式效能測試
環境介紹
一臺ubuntu10系統伺服器,簡稱A
一臺centos7系統伺服器,簡稱B
使用A做控制機(Controller),B做執行機(Agent)
JDK環境準備
寫這篇文章時,jmeter最新版本為5.0版本
官網下載連結http://jmeter.apache.org/download_jmeter.cgi
從4.0版本開始都是需要java 8 or 9
這裡由於A、B伺服器上的jdk版本是 1.7,所以筆者還是使用jmeter 3.0版本。
jmeter安裝
- 下載tgz或zip包
- 上傳到伺服器存放的路徑,並複製路徑
- 解壓包
- 新增環境變數,使用vim /etc/profile
新增複製的jmter路徑,並把bin路徑新增到PATH配置,示例如下
export JMETER_HOME=/home/ling/apache-jmeter
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$PYTHON_HOME:$PATH:$JMETER_HOME/bin
- source /etc/profile
- 驗證jmeter -v ,顯示如下資訊,說明安裝成功
(如果遇到問題,檢視文章最後,是否和筆者一樣的問題)
_ ____ _ ____ _ _ _____ _ __ __ _____ _____ _____ ____ / \ | _ \ / \ / ___| | | | ____| | | \/ | ____|_ _| ____| _ \ / _ \ | |_) / _ \| | | |_| | _| _ | | |\/| | _| | | | _| | |_) | / ___ \| __/ ___ \ |___| _ | |___ | |_| | | | | |___ | | | |___| _ < /_/ \_\_| /_/ \_\____|_| |_|_____| \___/|_| |_|_____| |_| |_____|_| \_\ 3.0 r1743807 Copyright (c) 1999-2016 The Apache Software Foundation
A、B兩臺伺服器都進行如上操作後。
jmeter配置與啟動
- 進行A控制機(Controller)jmeter的bin路徑下vim jmeter.properties
第228行,修改remote_hosts為B執行機(Agent)的IP加埠1099,如果控制機也同時作執行時,就把127.0.0.1加到後面。多個ip之間用逗號隔開。
- B執行機(Agent)啟動jmeter-server,進入jmeter的bin路徑下執行 ./jmeter-server
執行分散式測試
1,A控制機jmeter路徑下新建script路徑,並存放jmx指令碼,在該路徑下執行指令碼
命令示例
jmeter -n -t test.jmx -R ip1,ip2,ip3 -l testReport.jtl
jmeter -n -t test.jmx -R 200.200.200.11 -l testReport.jtl
2,檢視B執行機(Agent)會有執行的日誌輸出,執行完成可以看到A控制機的script路徑下生成了testReport.jtl
3,執行命令,分析testReport.jtl
jmeter -g testReport.jtl -e -o report/
遇到的問題
問題1: jmeter -v 時提示bash: /home/ling/apache-jmeter/bin/jmeter: 許可權不夠
解決:進入該路徑下,執行命令chmod 777 *
問題2:控制機執行jmx指令碼時,會提示如下資訊,導致測試跑不起來:
Waiting for possible shutdown message on port 4445
進入目錄/apache-jmeter/bin:
vim jmeter.properties
這個是用於監聽shutdown message的,如果不需要,可以直接設定為0即可。(小於1000都可以)
問題3:報告中亂碼的問題
解決:聽說使用高版本的jmeter已經解決了這個問題,可能jmeter3.2以上都沒有這個問題