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

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

 

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

一、下載jenkins.war,地址:http://jenkins-ci.org瀏覽器

二、安裝JDK,TOMCATtomcat

3 、講下載的jenkins.war直接拋到tomcat的webapps目錄下,而後啓動tomcatapp

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

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

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

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

重啓tomcatsvn

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

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

系統消息:根據本身須要隨便寫兩句便可,登錄後會顯示在主界面,這裏支持html風格

執行者數量:jenkins能夠同時構建的job個數,最好小於cpu個數,這裏默認便可

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

全局屬性,Environment variables環境變量,在這裏能夠添加名值對,提供給後續建立job使用,使用方法很簡單,${變量名}

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

jdk配置,看圖就明白了

maven配置,如圖

maven項目配置:

一、全局maven_opts,這裏能夠配置maven的相關參數,如圖,我只配置了下maven啓動時jvm堆的大小

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

jenkins url:將localhost改成真實ip

剩下部分算是可有可無的了,所有默認便可,若有特殊須要再進行配置,如源碼使用svn管理等等

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

一、返回jenkins首頁,單擊 new job 連接,進入以下頁面

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

maven

如下 我會對緊要的相關字段介紹一下,其餘的默認便可

選擇【丟棄舊的構建】,這裏主要是爲節省磁盤空間而考慮的,由於每次構建後,jenkins都會在jobs目錄下爲每一個job下載,和建立相關數據,如打包後的jar等

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

二、保持構建的最大個數,每一個job只會保留最新的5次構建記錄,這裏須要提醒的是,若是以前有一次構建成功,那麼jenkins會永遠保留,固然也能夠手動刪除

如圖:

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

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

二、源碼管理:這裏能夠輔助咱們作分佈式自動化,咱們能夠把每一個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都是表示週日 ,如下有幾個簡化字符

一、「*」 表示在該字段全部可能出現的值

二、也可使用連字符「-」定義範圍,如在DOW字段上定義1-5,表示週一至週五

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

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

 

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

一、Root POM 是你指定構建maven任務的項目根目錄,指定pom.xml所在目錄,這裏能夠是相對目錄或絕對路徑,相對路徑即爲jenkinsHome\workspace\jobName

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

保存。

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

相關文章
相關標籤/搜索