1. 程式人生 > >linux下部署jmeter的分散式測試功能,分析報告

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安裝

  1. 下載tgz或zip包
  2. 上傳到伺服器存放的路徑,並複製路徑
  3. 解壓包
  4. 新增環境變數,使用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
  1. source /etc/profile
  2. 驗證jmeter -v ,顯示如下資訊,說明安裝成功
    (如果遇到問題,檢視文章最後,是否和筆者一樣的問題)
    _    ____   _    ____ _   _ _____       _ __  __ _____ _____ _____ ____     
   / \  |  _ \ / \  / ___| | | | ____|     | |  \/  | ____|_   _| ____|  _ \   
  / _ \ | |_) / _ \| |   | |_| |  _|    _  | | |\/| |  _|   | | |  _| | |_) | 
 / ___ \|  __/ ___ \ |___|  _  | |___  | |_| | |  | | |___  | | | |___|  _ <  
/_/   \_\_| /_/   \_\____|_| |_|_____|  \___/|_|  |_|_____| |_| |_____|_| \_\ 3.0 r1743807
Copyright (c) 1999-2016 The Apache Software Foundation

A、B兩臺伺服器都進行如上操作後。

jmeter配置與啟動

  1. 進行A控制機(Controller)jmeter的bin路徑下vim jmeter.properties
    第228行,修改remote_hosts為B執行機(Agent)的IP加埠1099,如果控制機也同時作執行時,就把127.0.0.1加到後面。多個ip之間用逗號隔開。
    在這裡插入圖片描述
  2. 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以上都沒有這個問題