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