測(cè)試jenkins介紹初稿_第1頁(yè)
測(cè)試jenkins介紹初稿_第2頁(yè)
測(cè)試jenkins介紹初稿_第3頁(yè)
測(cè)試jenkins介紹初稿_第4頁(yè)
測(cè)試jenkins介紹初稿_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持.【關(guān)鍵字】測(cè)試持續(xù)集成簡(jiǎn)介(持續(xù)集成是什么)Continuous integration.持續(xù)集成源于極限編程(XP),是一種軟件實(shí)踐,軟件開發(fā)過程中集成步驟是一個(gè)漫長(zhǎng)并且無(wú)法預(yù)測(cè)的過程。集成過程中可能會(huì)爆發(fā)大量的問題,因此集成過程需要盡可能小而多,實(shí)際上持續(xù)集成講的是不斷的去做軟件的集成工作。持續(xù)集成作用(使用持續(xù)集成和不適用持續(xù)集成的區(qū)別)l 場(chǎng)景一、某項(xiàng)目最后做模塊集成的時(shí)候,發(fā)現(xiàn)很多接口都不通,甚至有的模塊連安裝包都沒有。l 場(chǎng)景二、沒有可用的軟件包,需要人手動(dòng)去編譯打包最新的代碼。l 場(chǎng)景三、搭建測(cè)試環(huán)境的時(shí)候需要手動(dòng)

2、去解壓包然后一系列拷貝修改配置等等。l 場(chǎng)景四、團(tuán)隊(duì)成員或者 teamleader 想了解當(dāng)前項(xiàng)目的狀態(tài),該如何去展示這些信息。持續(xù)集成就是用來(lái)解決以上問題,它的價(jià)值主要在于減少重復(fù)的步驟,降低項(xiàng)目的風(fēng)險(xiǎn),任何時(shí)間任何地點(diǎn)生成可用的軟件,增強(qiáng)項(xiàng)目的可見性等。持續(xù)集成實(shí)踐(持續(xù)集成怎么做)持續(xù)集成,最簡(jiǎn)單的形式是包括一個(gè)監(jiān)控版本控制系統(tǒng)(SVN 等等)變化的工具。當(dāng)變化被發(fā)覺時(shí),這個(gè)工具可以自動(dòng)的編譯并測(cè)試你的應(yīng)用。下面是持續(xù)集成中一些良好的實(shí)踐l 維護(hù)一個(gè)單一的代碼庫(kù)l 使建立自動(dòng)化l 使建立自測(cè)試l 每人每天都向主線提交代碼l 每次提交都應(yīng)在集成機(jī)上進(jìn)行建立l 快速建立l 使任何人都能輕易獲

3、得可執(zhí)行文件l 人人都能看到正在發(fā)生什么l 自動(dòng)化部署(上面是持續(xù)集成介紹,下面引出 jenkins)jenkins 簡(jiǎn)介持續(xù)集成是一種實(shí)踐,而 jenkins 可以幫助團(tuán)隊(duì)去盡量好的去完成這種實(shí)踐l Jenkins 是基于 java 語(yǔ)言的開源持續(xù)集成工具,提供了一套非常易用的用戶界面l jenkins 類似于 eclipse,基于插件化的架構(gòu),方便功能的擴(kuò)展,目前有幾百個(gè)現(xiàn)成插件可以使用,這些插件涵蓋從版本控制、建立工具、代碼質(zhì)量、建立通知、集成外部系統(tǒng)、UI 定制、游戲等等各個(gè)方面1文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯. 文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎

4、下載支持.安裝 jenkinsjenkins 默認(rèn)提供了三種安裝方式1.最簡(jiǎn)單的方式是通過 java web 的啟動(dòng)方式,訪問/jenkins-the-definitive-guide 默認(rèn)第一次下載 jenkins.jnlp 即可啟動(dòng)2.下載可執(zhí)行的 war 包啟動(dòng) jenkins3.部署到 tomcat 中(推薦)一個(gè)最簡(jiǎn)單的 jenkins 應(yīng)用在介紹該應(yīng)用前,先提及兩個(gè)非常重要的概念l job一個(gè)完整的建立可能需要很多步驟,每個(gè)步驟都稱作是一個(gè)job。一個(gè) job 是一個(gè)專一做某事的步驟,比如編譯,測(cè)試,打包,部署等等。jenkins 中默認(rèn)提供了四種不同類型的 jobl Jenkin

5、s 家目錄jenkins 為每個(gè)項(xiàng)目都會(huì)建立一個(gè) workspace 目錄,源碼會(huì)下載到這個(gè)目錄下,然后編譯等動(dòng)作都在該目錄中進(jìn)行。下面是一個(gè) jenkins 的家目錄結(jié)構(gòu)jobs 下面按照項(xiàng)目的維度進(jìn)行劃分,每個(gè)項(xiàng)目下有builds 和 workspace 目錄,其中源碼會(huì)保存在各個(gè)項(xiàng)目的 workspace 中,builds 目錄包含建立的歷史記錄。假設(shè)項(xiàng)目基于 svn 控制系統(tǒng),并且有簡(jiǎn)單的編譯打包腳本。該應(yīng)用要實(shí)現(xiàn)的功能是檢測(cè)到代碼提交后觸發(fā)建立動(dòng)作,調(diào)用已有的編譯打包腳本生成可用的軟件包。(上面的配置步驟就不列出來(lái)了,想講的話可以大概講講也可以截圖)這個(gè)最簡(jiǎn)單的 jenkins 應(yīng)用

6、執(zhí)行的原理是應(yīng)用 svn 的插件,當(dāng)有代碼提交的時(shí)候被插件檢測(cè)到,jenkins 將源碼下載到本地的 workspace(包括編譯打包腳本),此時(shí) jenkins 調(diào)用本地項(xiàng)目源碼中的編譯打包腳本(在配置 job 的時(shí)候指定)。這就是最簡(jiǎn)單的一個(gè)流程,復(fù)雜的流水線建立都是基于此而完善的。觸發(fā)建立的條件除了上面提到的提交建立,能夠觸發(fā)建立的方式還有以下幾種l 隔某段時(shí)間建立一次,比如隔一小時(shí)自動(dòng)建立一次。l 定時(shí)輪詢 SCM 的改變?nèi)ビ|發(fā)建立,比如隔一小時(shí)去輪詢一次 svn 是否有更改,有的話觸發(fā)建立,否則不做處理。l 手動(dòng)建立自動(dòng)化測(cè)試Jenkins 不僅僅能做源碼編譯打包的動(dòng)作,Jenkin

7、s 中有很多插件可以方便的實(shí)現(xiàn)自動(dòng)化測(cè)試。l 單元測(cè)試2文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯. 文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持.l 功能測(cè)試l 集成測(cè)試l 性能測(cè)試l 驗(yàn)收測(cè)試進(jìn)行自動(dòng)化測(cè)試僅僅是一部分功能,關(guān)于測(cè)試結(jié)果的收集和展示jenkins 也能夠做到,并且是以圖形化的方式展示出來(lái)。只需要告訴jenkins 測(cè)試結(jié)果在哪里,它會(huì)自動(dòng)去取,并生成可視化的圖形。另外一種關(guān)于自動(dòng)化測(cè)試的是代碼的覆蓋率,jenkins 同樣支持對(duì)代碼覆蓋率的統(tǒng)計(jì)。上圖中的自動(dòng)化測(cè)試給出詳細(xì)的失敗列表通知持續(xù)集成講究的是快速的發(fā)現(xiàn)問題,盡早的發(fā)現(xiàn)問題,因此當(dāng)出現(xiàn)問題(編

8、譯失敗,用例通過率不足等)時(shí)需要有通知的手段讓相關(guān)的人員了解情況。Jenkins 提供了豐富的通知插件,最常用的是 Email 通知,當(dāng)然除此之外還有l(wèi) 即時(shí)通訊軟件l IRCl 桌面通知代碼質(zhì)量代碼質(zhì)量的度量同樣也非常重要,比如圈復(fù)雜度,checkstyle,findbugs 等等的靜態(tài)檢查。這些檢查都可以使用jenkins 的插件完成,jenkins 負(fù)責(zé)收集質(zhì)量結(jié)果,做圖形展示,很方便開發(fā)人員根據(jù)質(zhì)量結(jié)果進(jìn)行代碼重構(gòu)。自動(dòng)化部署自動(dòng)化部署目的就是減少不必要的時(shí)間。最簡(jiǎn)單的是自己實(shí)現(xiàn)部署的腳本然后供jenkins 去調(diào)用,但是對(duì)于復(fù)雜的部署需求,自己實(shí)現(xiàn)腳本恐怕有些力不從心,我們可以借助插

9、件完成Puppet 或者 Chef。對(duì)于數(shù)據(jù)庫(kù)的自動(dòng)化部署同樣有插件供我們選擇比如Liquibase。Jenkins 的高級(jí)功能l 高級(jí)構(gòu)建參數(shù)構(gòu)建類似普通的構(gòu)建任務(wù),但是功能更強(qiáng)大??梢詾楸敬螛?gòu)建指定一些參數(shù),這些參數(shù)可能會(huì)在某幾個(gè)構(gòu)建中被使用到,參數(shù)的傳遞由jenkins 去維護(hù)。由此一個(gè)普通的構(gòu)建通過獲取不同的參數(shù)能夠表現(xiàn)的更多樣化。3文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯. 文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持.更強(qiáng)大的是多配置構(gòu)建,類似參數(shù)構(gòu)建,提供一個(gè)配置列表,比如針對(duì)不同的數(shù)據(jù)庫(kù)或者瀏覽器的列表,jenkins 會(huì)自動(dòng)的執(zhí)行不同場(chǎng)景下的測(cè)試,這

10、些測(cè)試可以并行的執(zhí)行,從而大大的減少了測(cè)試的時(shí)間。l 分布式構(gòu)建jenkins 也支持 master/slave 的分布式方式,master 主要用來(lái)分發(fā)構(gòu)建任務(wù)給 slave,實(shí)際的執(zhí)行在 slave 中 。Master 監(jiān)控 slave 的狀態(tài),并收集展示構(gòu)建的結(jié)果。但是在實(shí)際情況中master 同樣可以執(zhí)行構(gòu)建任務(wù)??梢酝ㄟ^ master 指定某個(gè)項(xiàng)目總是運(yùn)行在特定的 slave 或者某類 slave 或者簡(jiǎn)單的任何一臺(tái) slave 中。分布式構(gòu)建中,jenkins 提供了對(duì)代理節(jié)點(diǎn)的監(jiān)控,如果發(fā)現(xiàn)某臺(tái) slave 不可用,則會(huì)主動(dòng)將其下線,避免后續(xù)的任務(wù)被分配到該節(jié)點(diǎn)上。所謂的流水線很

11、容易理解,就是整個(gè)構(gòu)建流程按照一定的流程去構(gòu)建。當(dāng)你的構(gòu)建步驟變得復(fù)雜的時(shí)候,并且并行和串行都有的時(shí)候,通常就不太容易管理了。流水線能夠方便的定義某個(gè)構(gòu)建后要觸發(fā)的下一個(gè)構(gòu)建,或者同時(shí)觸發(fā)的后面幾個(gè)構(gòu)建。當(dāng)然也能夠等待某幾個(gè)構(gòu)建執(zhí)行完畢后去執(zhí)行某一個(gè)構(gòu)建。其中 TheDependency Graph View 插件能夠幫助你分析構(gòu)建任務(wù)之間的關(guān)系。并且如果涉及到構(gòu)建的資源競(jìng)爭(zhēng),也提供了鎖的功能。l jenkins 安全管理jenkins 中有多個(gè)維度來(lái)管理安全,一個(gè)是安全域,一個(gè)是授權(quán)。安全域能夠識(shí)別出合法的用戶,授權(quán)則是針對(duì)合法的用戶給出不同的權(quán)限。最簡(jiǎn)單的管理用戶賬號(hào)的方式是使用 jenk

12、ins 內(nèi)建的數(shù)據(jù)庫(kù),但是也能夠和其他的用戶管理系統(tǒng)做集成。針對(duì)授權(quán)有好多種不同的策略,比如基于項(xiàng)目,基于角色。另外一種重要的功能是審計(jì),也就是記錄用戶的操作日志。有兩種插件能夠?qū)崿F(xiàn)該功能。Audit Trail 插件能夠記錄用戶的操作動(dòng)作。JobConfigHistory 插件能夠存儲(chǔ)前一個(gè)版本系統(tǒng)的變化和 job 的配置文件。持續(xù)集成一般會(huì)經(jīng)歷一下幾個(gè)階段l 階段一沒有構(gòu)建服務(wù)器最初的階段,團(tuán)隊(duì)沒有任何一種構(gòu)建服務(wù)器。軟件由開發(fā)人員手動(dòng)的去構(gòu)建,盡管使用的是Ant 腳本或者類似的東西。源碼可能存儲(chǔ)在一個(gè)中央源碼倉(cāng)庫(kù)中,但是開發(fā)者未必要定期的提交更改后的代碼。有時(shí)候在一個(gè)版本要發(fā)布的時(shí)候,開

13、發(fā)人員手動(dòng)的去集成這些變化,這是一個(gè)非常痛苦的過程。l 階段二夜間的構(gòu)建4文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯. 文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持.在這個(gè)階段,團(tuán)隊(duì)有一臺(tái)構(gòu)建服務(wù)器,并且定時(shí)的去執(zhí)行構(gòu)建任務(wù)(通常在夜里)。因?yàn)椴]有一個(gè)可靠的可重復(fù)的單元測(cè)試,所以這里的構(gòu)建通常只是代碼編譯。如果有自動(dòng)化測(cè)試,也并沒有強(qiáng)制集成到構(gòu)建階段,也許根本不會(huì)正確的運(yùn)行。但是現(xiàn)在開發(fā)人員已經(jīng)能夠有規(guī)律的定期提交代碼了,至少在每天下班前。如果一個(gè)開發(fā)人員提交的代碼和另外一個(gè)人有沖突,構(gòu)建服務(wù)器會(huì)在第二天的早上將告警通過郵件發(fā)出來(lái)。然而,整個(gè)團(tuán)隊(duì)只是將構(gòu)建服務(wù)器作為一

14、個(gè)參考如果構(gòu)建掛了,他們并沒有意識(shí)去立即把它修復(fù)好,因此構(gòu)建可能會(huì)在一段時(shí)間內(nèi)不可用。團(tuán)隊(duì)現(xiàn)在已經(jīng)更加嚴(yán)格的使用持續(xù)集成和自動(dòng)化測(cè)試了。構(gòu)建服務(wù)器被配置為當(dāng)有代碼提交的時(shí)候便會(huì)執(zhí)行構(gòu)建,團(tuán)隊(duì)的成員也可以很方便的看到是哪些代碼中的變化引起了構(gòu)建,這些變化引發(fā)了什么問題。除此之外,構(gòu)建腳本編譯應(yīng)用并且自動(dòng)的執(zhí)行一些單元和集成測(cè)試。對(duì)于郵件,構(gòu)建服務(wù)器能夠更加積極主動(dòng)的去呈現(xiàn)構(gòu)建中出現(xiàn)的問題。失敗的構(gòu)建也能夠被快速的修復(fù)。自動(dòng)化的代碼質(zhì)量和覆蓋率度量也能夠執(zhí)行了,并且可以幫助評(píng)估代碼的質(zhì)量和測(cè)試的相關(guān)性和有效性。代碼質(zhì)量的構(gòu)建也能夠?yàn)閼?yīng)用生成API 文檔。所有的這些幫助團(tuán)隊(duì)去維護(hù)高質(zhì)量的代碼。團(tuán)隊(duì)中

15、可以設(shè)置一個(gè)醒目的屏幕去時(shí)刻展現(xiàn)項(xiàng)目的狀態(tài)。l 階段五更嚴(yán)格的測(cè)試持續(xù)集成的好處是非常接近立體的測(cè)試?,F(xiàn)在,測(cè)試驅(qū)動(dòng)開發(fā)(TDD)被廣泛的應(yīng)用,對(duì)于自動(dòng)構(gòu)建的結(jié)果更加的有信心。對(duì)于應(yīng)用程序不再是簡(jiǎn)單的編譯和測(cè)試,而是會(huì)繼續(xù)更復(fù)雜的端到端測(cè)試和性能測(cè)試。l 階段六自動(dòng)化驗(yàn)收測(cè)試和自動(dòng)化部署驗(yàn)收測(cè)試驅(qū)動(dòng)開發(fā)(Acceptance-Test Driven Development)在這個(gè)階段被應(yīng)用,引導(dǎo)開發(fā)的工作并且提針對(duì)項(xiàng)目的狀態(tài)提供一個(gè)高層次的報(bào)告。這些自動(dòng)化測(cè)試使用行為驅(qū)動(dòng)測(cè)試(Behavior-Driven Development)和驗(yàn)收測(cè)試驅(qū)動(dòng)開發(fā)工具,并且從商業(yè)的角度生成開發(fā)人員不理解的報(bào)告。因?yàn)檫@些高層次的測(cè)試在項(xiàng)目的早期開展,因此能夠清晰的指出,哪些特性已經(jīng)完成了,哪些需要后面去完成。每當(dāng)代碼有改變或者夜里,應(yīng)用程序被自動(dòng)的部署到 QA 的測(cè)試環(huán)境來(lái)完成測(cè)試。當(dāng)測(cè)試人員完成了充分的測(cè)試后,應(yīng)用程序可以被一鍵式的部署到生產(chǎn)環(huán)境。當(dāng)然也能夠通過構(gòu)建工具去備份當(dāng)前的發(fā)布版本,或者當(dāng)有問題出現(xiàn)的時(shí)候,回歸當(dāng)前的版本。l 階段七持續(xù)部署處于對(duì)自動(dòng)化的單元、集成、驗(yàn)收測(cè)試的信

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論