Jenkins+jmeter+ant自動化設置jira面板統計圖每日更新

1. 需求描述

領導提出了一個需求:每天可以看到儀表盤中,關於項目A的每日bug統計情況

2. 思路設計

2.1 初步思路

1)根據創建時間,設置當日進行查詢,然後保存爲篩選器名稱:當日數據統計

2)儀表盤中,添加一個二維數據統計的小程序,然後選擇該是篩選器,即可在界面中展示當日數據統計情況

3.遇到問題

1)jira創建時間中,無法自動根據每日數據進行統計,根據實踐,只有選擇在2020-04-19和2020-04-20之間,纔會顯示當日數據(4月19日)的數據統計

2)如果每日設置創建時間,然後保存篩選器遇到另兩個問題:

a.每日設置十分複雜

b.篩選器名稱不能重複

2.2自動化思路

因爲我們公司這個項目是產品,項目週期時間長,且是敏捷式開發與測試。根據我的初步思路,如果每天設置,將十分辛苦,我就想,能否實現自動化,這樣我就不需要每天設置。

2.2.1自動化初步思路

我思考的兩種自動化思路(自己已掌握的自動化):

1、python+selenium自動化測試;

2、jmeter接口測試;

自動化初步思路遇到的問題:

1、對比兩種方式,選擇一個適合本次需求的

2、每日執行一次jmeter或者pycharm,雖然不用設置,也很麻煩,如果每天自動跑該多好

2.2.2自動化進階思路(一)

一、對比【python+selenium自動化測試】、【jmeter接口測試】

前置條件:只需要考慮一個用戶賬號設置,只需要保證每日創建時間不同,篩選器名稱不同

(1)思路對比+實現程度對比

1、python+selenium需要獲取定位元素,且需要寫代碼,且由於我換了新電腦,需要重新下載軟件(複雜)

2、jmeter接口測試,只需要通過fiddler獲得接口,參數,請求方式,直接使用jmeter就可實現(簡單)

結論:我選擇了一種最易實現的方法(jmeter接口測試)

二、避免每日運行工具思路

Jenkins作爲一個持續構建的好工具,用於自動化各種任務,包括構建、測試和部署軟件。當然是一個優秀的選擇。

於是我百度Jenkins+jemeter集成,得到了一個Jenkins+ant+jemter的好方法

所以思路就是:Jenkins+ant+jemter放在服務器裏面,設置每天定時運行,即可實現(linux)

花絮:這樣後期就直接幹嗎?後期沒有遇到思路變化麼,額,不,我有遇到了個問題,那就直接在4.3中先說明,然後再說我的實現方法吧

2.2.3自動化進階思路(三)

使用jemeter在進行接口測試的時候,我思路的變化

1、在txt中寫了幾百條起始時間和結束時間,然後根據jmeter的csvXXX參數化方法進行獲取,然後,jmeter設置定時器,每天運行一次(篩選器名稱我一樣在txt中寫4.19當日數據統計、4.20當日數據統計)

缺點:如果直接這樣 使用定時器,那就不需要Jenkins,而且意義不大,而且jmeter工具要一直開着,感覺很尷尬

最後,我老哥一下子點醒了我:直接獲取當日時間呀,對呀,我傻啦,篩選器名稱也可以直接${當日時間}數據統計,那不就也是自動獲取呀。啊呀呀

哈哈,然後,我網上百度,jmeter獲取當日時間函數和明日時間函數

3. 實戰實練

3. 1接口測試

3. 1.1接口測試思路

 1、前置條件:已經安裝jdk、jmeter、fiddler(抓包)等工具,且會使用基本的jmeter

2、將每個http請求的共同參數放在http信息頭管理器中

3、需要獲取token值,供後期使用(系統中其他操作)

4、需要cookie管理器,自動獲取cookie值

5、需要調用後置處理器程序,目的:自動顯示參數值,可以快速知道自己的參數是否正確

3. 1.2 接口測試實戰

3. 1.2.1 登錄

接口測試實戰fiddler獲取登錄接口,且需要獲取該響應結果的token值,供後期使用(系統中其他操作)

步驟一:獲取登錄接口

步驟二:獲取token

步驟三:添加調試器

3. 1.2.2 查詢數據+保存數據

步驟一:根據創建時間等查詢系統數據

(備註,後期發現,此請求不需要,因爲:我在保存篩選器結果的請求中,其實已經默認查詢了系統數據的)所以此處可以不講

步驟二:保存篩選器

抓包顯示是post請求,有兩個關鍵參數值:1、篩選器名稱2、創建時間設置(起始時間,結束時間)

將起始時間和結束時間,根據函數獲得,篩選器名稱,【固定字符串+每日時間(起始時間)】

其中:起始時間和結束時間,(用戶定義的變量中設置)

當日時間函數:${__time(yyyy-MM-dd,)}

當日時間的後一天函數:${__timeShift(yyyy-MM-dd,,P1D,,)

具體如下

保存篩選器請求實現如下:

備註:

1、內容編碼utf-8不能少,否則會報錯,

2、需要加一個htpp信息頭管理器,放content-type(原因:請求是json),內容可以直接複製fiddler中獲的(實戰即可知)具體可百度

 

3. 1.2.3儀表盤中放數據+展示數據

每個篩選器都有個id,所以需要動態獲取id。此處的id是根據篩選器獲取的,因此在請求:保存篩選器中通過關聯(正則表達式提取器)獲得id值。

步驟一:獲取id值

 

步驟二:儀表盤中放數據

(我設置了兩個展示,一個是二維統計表,一個是明細(見文章最後展示部分,有兩個展示數據)

步驟四:展示數據

只需要獲取顯示數據的請求即可

 

3. 1Jenkins+ant+jmeter集成

前置條件:防火牆需要關閉:systemctl stop firewalld

說明:我是參照如下鏈接實戰的(感謝):

凌陽:https://www.jianshu.com/p/58f4116078e6(該文章還提供軟件包,大家可以查看-比我的更詳細)

linux環境中具體實現

3. 1.1軟件安裝

3. 1.1.1安裝jdk

a.通過xftp上傳jdk壓縮包

(自選安裝文件夾/usr/local/software)

b.解壓jdk安裝包

tar -zxvf jdk-8u162-linux-x64.tar.gz

c.配置jdk環境變量

vi /etc/profile

export JAVA_HOME=/usr/local/software/jdk1.8.0_222-ea-b03

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

d.刷新配置文件source /etc/profile

e.驗證jdk

java -version

3. 1.1.2安裝jmeter;

a.配置環境變量

tar -zxvf apache-jmeter-5.0.tgz

b.配置環境變量

vim /etc/profile

在末尾添加如下內容

export JMETER_HOME=/usr/src/apache-jmeter-5.0

export CLASSPATH=$JMETER_HOME\lib:$CLASSPATH

export PATH=$PATH:$JMETER_HOME/bin

c.刷新配置文件

source /etc/profile

e.檢查是否安裝成功

jmeter -v

3. 1.1.3安裝ant(步驟與jmeter一模一樣)

3. 1.2 Ant配置jmeter

用ant構建命令來調動執行jmeter接口測試,並生成測試報告

3. 1.2 .1 配置庫文件

將jmeter目錄下的extras目錄下的ant-jmeter-1.1.1.jar文件複製到ant目錄下的lib文件夾中

3. 1.2.2 下載測試報告模板

將jmeter-results-shanhe-me.xsl上傳至jmeter安裝目錄的extras文件夾下

3. 1.2.3 配置ant編譯文件build.xml

將build.xml放至/root/jmeter中

需要修改的地方如下:

 

3. 1.2.4 配置jmeter. properties

jmeter.properties文件位於jmeter安裝的bin目錄下

1、jmeter默認保存的是csv格式的文件,需要修改成xml格式

 

2、針對Response的編碼處理,需要修改統一爲UTF-8,避免部分Reponse亂碼問題

3、修改jtl報告文件需要存儲的數據種類

3. 1.2.5 配置郵件

ant發送郵件功能,需要在ant的安裝目錄/lib目錄下,添加jar包 mail.jar、activation.jar和commons-email-1.5.jar

password處填寫的是授權碼,不是郵箱密碼,需要自行開啓郵箱的SMTP功能

mail_to這裏寫要發送方的郵箱地址

授權碼具體設置:

進入【QQ郵箱】,點擊上面【設置】【郵件設置】頁面,點擊【賬戶】,找到【POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務】,點擊【開啓】,然後根據提示,發短信,即可獲得授權碼

備註:具體可以百度搜索【qq郵箱授權碼】

 

3. 1.3 Jenkins配置

3. 1.3.1 Jenkins全局配置

進入系統設置-- Global Tool Configuration,配置ant主目錄

3. 1.3.2 Jenkins項目配置

a.新建一個自由風格的項目:jira-project

b.配置定時構建

參考此處:https://blog.csdn.net/u013250071/article/details/81000777

* * * * *五個位置,分別代表:分鐘,小時,日期,月份,星期

*代表任意

例如:30 1 * * 代表:每天1點30分準時構建

c.配置ant的build文件

 

 

4 成果展示

4.1 儀表盤展示

4.2 郵件展示

感謝:

https://www.jianshu.com/p/58f4116078e6(該文中還提供軟件包安裝下載)
https://blog.csdn.net/u013250071/article/details/81000777

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章