1. 程式人生 > 其它 >jmeter、jenkins 實現效能測試自動化

jmeter、jenkins 實現效能測試自動化

一、安裝JDK

1.1 安裝目的

jenkins需要執行在jdk上,所以安裝jenkins前需要先安裝jdk。

1.2 檢查環境是否已安裝JDK

Shell執行命令java –version 檢視是否已安裝JDK,如下圖所示,當前環境安裝的版本為1.8.0_242

1.3 安裝前的清理工作

注意:該步驟不是必須執行的,當JDK版本不適用,需安裝新的JDK時才執行

shell執行如下命令:

rpm -qa | grepjdk

rpm -qa | grepgcj

yum -y remove java-xxx-xxx

1.4 安裝步驟

1)通過XFTP在/usr/local 目錄下新建java資料夾,將安裝包上傳到伺服器的/usr/local/java目錄下,並解壓即可

2)配置JDK環境變數

vim命令修改etc目錄下的環境變數檔案:profile,填寫如下內容:

JAVA_HOME=/usr/local/java/jdk1.8.0_242

JRE_HOME=/usr/local/java/jdk1.8.0_242/jre

PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH

3)shell執行source /etc/profile 命令,使環境變數生效

4)shell執行命令:java -version檢視JDK是否安裝成功,結果如下圖所示,表示安裝成功。

二、部署jmeter

1、 在/opt目錄下建立jmeter資料夾

2、上傳jmeter檔案到jmeter資料夾

3、Vim命令修改etc目錄下的環境變數檔案:profile,新增如下內容:

export JMETER_HOME=/opt/jmeter/apache-jmeter-3.1

export PATH=$JMETER_HOME/bin:$PATH

export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH

1、 Shell執行source /etc/profile 命令,使環境變數生效

2、 輸入jmeter -v,打印出如下結果表示安裝成功:

三、安裝jenkins

(請自行百度,此處不贅述)

四、jmeter壓測指令碼編寫

(請自行百度,此處不贅述)

五、jenkins配置自動化執行jmeter指令碼生成測試報告(重點!!!

1)外掛下載

必備外掛:HTML Publisher、ant 、DingTalk(釘釘)、email(郵箱)、Startup Trigger、Groovy、SSH、performance、Role-based Authorization Strategy。

外掛作用說明:

a、 HTML Publisher和performance報告展示

b、 Startup Trigger、Groovy 解決HTML報告內容為空的問題

c、 SSH 連線遠端linux伺服器,並執行指令碼

d、 Role-based Authorization Strategy 使用者、角色許可權設定

下載外掛的地方:【系統管理】-【外掛管理】

2)配置jdk路徑資訊

路徑:【系統管理】-【全域性工具配置】

3)配置SSH連線jenkins所在linux伺服器

路徑:【系統管理】-【系統配置】

4) 建立job

路徑:【Dashboard】-【新建任務】

輸入工程名稱,例如:job name,選擇“構建一個自由風格的軟體專案”,點選確定按鈕,即新建成功。

注意:job的構建步驟裡各外掛的先後順序決定了執行順序,這個很重要!!!

5)設定釘釘通知

系統管理-系統配置頁面填寫釘釘配置資訊,具體如下圖所示,其中webhook為從釘釘軟體上設定的釘釘機器人的webhook。

然後到job頁面勾選配置的機器人即可。

6)SVN管理jmx指令碼

首先,新增文字引數,建立變數TestScript來存放jmx指令碼名,指令碼名不需要帶.jmx字尾

然然後配置連線SVN

最後寫shell命令執行從SVN上取下來的所有jmx指令碼

命令如下:

for i in $interface

do

jmeter -n -t $WORKSPACE/$i.jmx -l $filepath/TestReport/$i.jtl

done

7)郵件通知

先到系統管理-系統配置頁面填寫管理員郵箱地址資訊

再填寫郵件通知資訊

最後進入job,構建後操作步驟處新增操作步驟Extended Email Publisher

,並進行配置:

8)構建觸發器

進入job,在構建觸發器步驟勾選“定時構建”,輸入日程表資訊,例如輸入:H/5 * * * * 表示每五分鐘執行一次。

9)構建job前清理或備份舊報告

進入job,在“構建”處的SSH site選擇linux地址,在command處填寫刪除報告檔案的命令,如果不想刪除,也可以重新命名為其他名,具體看需要寫命令,這裡是進行刪除。

注意:filepath是引數化的檔案路徑

10)重啟ServerAgent

首先在 系統管理-系統配置頁面找到Publish over ssh外掛,並按下圖所示,填寫相關資訊。

注意:密碼只能填寫一個,如果需要監控多臺伺服器,繼續新增同樣的IP地址配置即可,但是使用者的密碼只能填寫一個,所以這些伺服器的密碼需一致。

然後進入job,構建環境處勾選“Send files or execute commands over SSH before the build starts”,然後在Exec command處填寫重啟ServerAgent.sh的指令碼。

指令碼內容:

#!/bin/bash

echo "Stopping ServerAgent.sh"

pid=`ps -ef | grep " startAgent.sh" | grep -v grep | awk '{print $2}'`

if [ -n "$pid" ]

then

echo $pid

kill -9 $pid

fi

echo "starting ServerAgent.sh"

sleep 1

echo "starting ServerAgent.sh"

nohup sh startAgent.sh & > .out

echo "started ServerAgent.sh"

11)jenkins所在伺服器shell指令碼執行

首先,進入job後新增兩個文字引數,

通過變數filepath儲存jmeter的部署路徑

通過變數interface儲存報告儲存路徑,引數值處一行代表一個變數值。

然後在“構建”處新增構建步驟Execute shell script on remote host using ssh,然後SSH site選擇linux伺服器連線地址,在Command處填寫shell指令碼用於解析jmeter的測試報告;其中

#!/bin/bash -ilex

source /etc/profile;

是必填的,用於使linux的環境變數生效。

12)JMX報告解析

#!/bin/bash -ilex

source /etc/profile;

cd $filepath/lib/ext;

for i in $interface

do

jmeter -g $filepath/TestReport/$i/juhe.jtl -o $filepath/TestReport/$i/Aggregate-Report;

java -jar CMDRunner.jar --tool Reporter --generate-png $filepath/TestReport/$i/CPU.png --input-jtl $filepath/TestReport/$i/CPU.jtl --plugin-type PerfMon;

java -jar CMDRunner.jar --tool Reporter --generate-png $filepath/TestReport/$i/TPS.png --input-jtl $filepath/TestReport/$i/TPS.jtl --plugin-type TransactionsPerSecond;

java -jar CMDRunner.jar --tool Reporter --generate-png $filepath/TestReport/$i/time.png --input-jtl $filepath/TestReport/$i/time.jtl --plugin-type ResponseTimesOverTime;

done

Jmx報告解析命令說明:

命令a: jmeter -g $filepath/TestReport/$i/juhe.jtl -o $filepath/TestReport/$i/Aggregate-Report;

用於將jmeter的聚合報告轉換為html報告,這裡需要提前下載jmeter的報告解析外掛jmeter-results-detail-report_30.xsl,並放到jemter的/opt/jmeter/apache-jmeter-3.1/extras目錄下。

命令b: java -jar CMDRunner.jar --tool Reporter --generate-png $filepath/TestReport/$i/CPU.png --input-jtl $filepath/TestReport/$i/CPU.jtl --plugin-type PerfMon;

用於將jmeter的資源監控報告轉換為圖片。

執行此命令前需要先通過命令:cd /opt/jmeter/apache-jmeter-3.1/lib/ext; 進入CMDRunner.jar所在目錄

命令最後有個命令型別 PerfMon,除了這個還支援如下型別:

ResponseTimesOverTime、ResponseTimesPercentiles、ThroughputVsThreads、TimesVsThreads、PageDataExtractorOverTime、TransactionsPerSecond

如上圖所示,轉換TPS報告檔案就用TransactionsPerSecond;轉換響應時間報告就用ResponseTimesOverTime。

13)HTML報告展示

進入job後先在“構建觸發器”處勾選“Build when job nodes start”

再增加構建步驟“Execute system Groovy script”

再編輯該構建步驟,編寫命令:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")

用步驟用於解決jenkins的HTML Report外掛無法正常顯示報告資料。

再增加“構建後操作步驟” “Public HTML reports”,並進行配置

變數Filepath在General處進行配置

都配置好後,構建job,生成的報告可在左側點選“HTML Report”進行檢視

14)展示與上次構建的比對結果

進入job,在構建後操作步驟處新增步驟Publish Performance test result report,並按下圖進行配置,以讀取指定目錄下的jtl報告,job構建後可點選左側的Performance Thead檢視報告結果