在自動化測試過程當中,測試報告最能直觀的體現測試的價值,以前一直使用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的