jenkins+maven+junit構建自動化測試,整合junit xml生成直觀的測試報告[留存]


在自動化測試過程中,測試報告最能直觀的體現測試的價值,之前一直使用maven+junit來構建我的自動化測試,但這樣有幾個缺點,一是,不能定時構建自動化任務(也許是我沒有找到maven有沒有提供這樣的方法),二是,不能生成一個直觀的測試報告(maven+junit在surefire-reports文件目錄下提供兩種格式的測試結果集,一種是txt文本格式,第二種是junit的xml格式的,但給我總體感覺還是不夠直觀),三是,無法完成分布式執行測試,設想一下,如果我們有成千上百個testcase,我們將面臨一個非常嚴峻的問題,效率!!!

 

綜合以上三點考慮,我選擇了jenkins來解決現在面臨的困難,不管以上三種問題在maven+junit中有沒有更好的支持,但我可以確認jenkins可以非常簡單的完成以上3個目標,先介紹下如何生成直觀的測試報告。

1、下載jenkins.war,地址:http://jenkins-ci.org

2、安裝JDK,TOMCAT

3 、講下載的jenkins.war直接拋到tomcat的webapps目錄下,然后啟動tomcat

4、在瀏覽器中輸入:http://localhost:8080/jenkins,進入jenkins管理界面

5、在使用jenkins前,需要做些配置,jenkins默認工作目錄位於~/.jenkins下,配置下環境變量即可,如:JENKINS_HOME=E:\jenkins,

另外,tomcat默認不支持UTF-8的URI,解決辦法是修改server.xml的connector,如下:

    <Connector port="8080" protocol="HTTP/1.1"                 connectionTimeout="20000"                 URIEncoding="UTF-8"                redirectPort="8443" />

重啟tomcat

進入jenkins 的homepage,進入系統設置頁面,這里是jenkins構建任務用的全局范圍設置的地方,下面我會一一介紹各個字段的使用,沒有介紹到的,不做任何修改,這里主要針對自動化測試使用

主目錄:即是以上配置環境變量JENKINS_HOME的值,修改環境變量后,會在此顯示

系統消息:根據自己需要隨便寫兩句即可,登陸后會顯示在主界面,這里支持html風格

執行者數量:jenkins可以同時構建的job個數,最好小於cpu個數,這里默認即可

生成錢等待時間:只上次構建結束后,本次構建的等待時間,默認即可

全局屬性,Environment variables環境變量,在這里可以添加名值對,提供給后續創建job使用,使用方法很簡單,${變量名}

maven 配置:兩項,前者是提供maven repository的settings.xml地址,后者是maven全局settings.xml文件地址

jdk配置,看圖就明白了

maven配置,如圖

maven項目配置:

1、全局maven_opts,這里可以配置maven的相關參數,如圖,我只配置了下maven啟動時jvm堆的大小

2、local maven repository:maven本地倉庫地址,默認即可,這里我有些疑問,我的電腦中已經將maven本地倉庫遷移到其他目錄,但這樣做jenkins在構建maven job時會自動找到我遷移后的倉庫,有知道的朋友麻煩給評論下,順便留下詳細的答案啊!!!! 

jenkins url:將localhost改為真實ip

剩下部分算是無關緊要的了,全部默認即可,如有特殊需要再進行配置,如源碼使用svn管理等等

到此,jenkins系統環境就配置完畢!接下來就是為jenkins創建一個job,創建job也很簡單,不要害怕里面有很多配置,大部分對於自動化測試默認就足夠了,這也證明了jenkins足夠強大!

1、返回jenkins首頁,單擊 new job 鏈接,進入如下頁面

jenkins支持多種構建平台,其中常用的就是前兩個,我們這里選擇針對maven項目構建,選擇第二項,很多情況第一種更為方便,擴展性較強,在這里我說如果構建一個maven2/3項目,首先,給maven起一個有意義的名稱,選擇第二項(構建一個maven2/3項目),單擊ok,進入構建主頁,如圖

maven

以下 我會對緊要的相關字段介紹一下,其他的默認即可

選擇【丟棄舊的構建】,這里主要是為節省磁盤空間而考慮的,因為每次構建后,jenkins都會在jobs目錄下為每個job下載,和創建相關數據,如打包后的jar等

1、保持構建的天數,這里我設置5,表示每個每次構建后的記錄只有5天有效期

2、保持構建的最大個數,每個job只會保留最新的5次構建記錄,這里需要提醒的是,如果之前有一次構建成功,那么jenkins會永遠保留,當然也可以手動刪除

如圖:

1、高級項目選項:顧名思義,這里只有在有特殊需求的情況下才會使用,對於本次測試,默認即可

這里說下前兩個字段,安靜期主要是對於cvs這樣的項目管理工具,它不支持原子性提交,所以為了避免每次cvs版本發生變化就觸發構建,這里設置一個時間,指定cvs版本發生變化后,等待指定時間后再觸發構建;重試次數是以防cvs等遇到其他異常

2、源碼管理:這里可以輔助我們做分布式自動化,我們可以把每個slave要執行的腳本放到svn上,每個slave在構建時依據這里的配置自動check out 對應的腳本,如果源碼放在svn上,在此做配置,

repository url:即為源碼的url,我使用的是svn協議,我的腳本放在了yanxiuLAN這個項目下

local module directory:這里是相對路徑,相對於jenkins的 workspace\jobname,項目的源碼會下載到這個目錄下.

構建觸發器(定時任務),這里既解決開篇我提到的如何定時執行測試任務,如圖:

這里着重介紹下build periodically,其他選項對於開發流程較為常用

選中build periodically,如圖: ,我配置的是每周一 至 周五 早上8點構建任務

對於所有的任務日程表,jenkins采用cron-style語法,包含5個字段,字段之間使用空格隔開,格式如下

MINUTE HOUR DOM MANTH DOW

MINUTE:0-59    HOUR:0-23    DOM:1-31   MONTH:1-12   DOW:0-7 ,其中0,7都是表示周日 ,以下有幾個簡化字符

1、“*” 表示在該字段所有可能出現的值

2、也可以使用連字符“-”定義范圍,如在DOW字段上定義1-5,表示周一至周五

3、使用正斜杠符號定義一個跳過一個范圍,如在MINUTE字段上定義 */5  表示每五分鍾的意思

4、使用逗號分隔一個字段表示一系列有效值,如HOUR 字段定義 12,18 表示12點與18點

 

接下來介紹一下對於測試比較重要的一個配置,如圖:

1、Root POM 是你指定構建maven任務的項目根目錄,指定pom.xml所在目錄,這里可以是相對目錄或絕對路徑,相對路徑即為jenkinsHome\workspace\jobName

2、Goals and options:是你要執行的maven命令,我這里的意思是構建前先清除上次構建產生的target目錄(該目錄中包含編譯后的class文件,生成的項目站點以及打好的包,junit的報告等),然后執行site會重新構建項目生成站點,詳見maven

保存。

OK!!!有了以上的配置后,就能成功解決開篇提到的3個問題,so easy,大家多試一下,相信大家會喜歡jenkins的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM