Jenkins簡介瀏覽器
Jenkins是Java編寫的很是流行的持續集成(CI)服務,起源於Hudson項目。因此Jenkins和Hudson功能類似。服務器
Jenkins支持各類版本的控制工具,如CVS、SVN、Git、Mercurial、Perforce和ClearCase,並且能夠執行用Apache Ant或Java Maven構建的項目。同時,它也能夠利用一些插件、Shell腳本和Windows批處理命令來構建其餘平臺的項目。框架
Jenkins除了構建軟件功能外,還能夠用於搭建自動化測試環境,好比實現Python Selenium測試的無人值守的狀況下按照預約的時間調度運行(如晚上),或者每次代碼變動提交至版本控制系統時實現自動運行的效果。工具
下面,我將演式如何搭建Jenkins並建立一個自由風格的軟件項目在無人值守的狀況下按預約時間自動化測試(基於Python Selenium自動化測試)。post
Jenkins環境準備 測試
爲了可以成功使用Jenkins執行測試,咱們須要作一些修改。目標是在Jenkins上按計劃執行測試,而後收集測試結果並顯示在Jenkins Dashboard頁面。爲了實踐,我將重用以前建立的百度冒煙測試。ui
我使用了unittest的TestSuite Runner批量執行測試,並以JUnit報告的格式輸出測試結果。這裏須要用到Python下的xmlrunner庫。執行如下命令下載與安裝xmlrunner。插件
pip install xmlrunner3d
百度冒煙測試腳本在經過TestSuite Runner運行homepagetests.py和searchtests.py兩個腳本中的測試。最後用xmlrunner.XMLTestRunner來運行冒煙測試並生成JUnit測試報告。此報告以XML格式生成,保存在test-reports子文件夾中。代碼以下:版本控制
生成的XML格式的report以下:
搭建Jenkins
搭建Jenkins簡單。下載系統平臺的Jenkins包並進行安裝。下面我將安裝並啓動Jenkins,而後建立一個新的構建做業以對上面的腳本進行在無人值守的狀況下按照預約的時間調度運行(百度冒煙測試)。
1)下載並安裝Jenkins CI服務器。我下載的是Jenkins Windows安裝包,並在Windows7上安裝Jenkins。
2)從瀏覽器進入Jenkins Dashboard頁面(默認狀況下爲http://localhost:8080)。
3)在Jenkins Dashboard頁面上,單擊新建項目(New Item)連接,建立一個新的Jenkins做業,以下圖所示:
4)在項目名稱(Item name)文本框中輸入Baidu_Smoke_Test,而後選擇構建自由風格的軟件項目(Freestyle project)單選按鈕,以下圖所示:
5)單擊肯定(OK)按鈕。以上指定名稱命名的新做業就建立成功了。
6)在構建(Bulid)部分,單擊增長構建步驟(Add build step),而後從下拉列表中選擇執行Windows批處理命令(Execute Windows batch command)選項,以下圖所示:
7)在命令(Command)文本框裏輸入如下命令,以下圖所示。這個命令將冒煙測試的Python腳本文件複製到Jenkins工做空間下並執行smoketest.py。
8)在前面已經配置了smoketest.py以生成JUnit格式的測試結果,並將測試結果顯示在Jenkins Dashboard頁面。要在Jenkins中集成這些報告,先單擊增長構建後操做步驟(Add post-build action),而後選擇發佈JUnit測試結果報告(Publish JUnit test result report)選項,以下圖所示:
9)在構建後操做(Post-build Aactions)部分中,在測試報告XML(Test report XMLs)文本框中添加test-report/*.xml,以下圖所示。Jenkins每次運行測試的時候,它將從test-reports子文件夾中讀取測試結果。
10)因爲須要按計劃時間自動執行測試,在構建觸發器(Build Triggers)部分選擇按期構建(Build periodically),並在計劃(Schedule)文本框中輸入以下圖所示數據。那麼,天天下午18:24構建過程將自動觸發,做爲無人值守構建過程的一部分,Jenkins也將自動執行測試,這樣在次日早上當你到達辦公室的時候就能夠看到測試執行結果了。
11)單擊保存按鈕保存做業配置,Jenkins將會顯示新建立的做業項目頁面。
12)如今能夠來檢測一下全部的配置是否設置好,測試是否能成功執行。單擊當即構建(Build Now)連接手動運行該做業,以下圖所示:
13)在構建歷史(Build History)部分中能夠查看構建的運行狀態,以下圖所示:
14)單擊構建歷史(Build History)部分中正在運行的項目,將打開以下圖所示的頁面。
15)除了Jenkins頁面上的執行狀態和進度條,還能夠經過打開控制檯輸出(Console Output)連接觀察後執行信息。以下圖是有命令輸出信息的「控制檯輸出」頁面。
16)一旦Jenkins完成構建過程,就能夠看到一個相似於下面截圖所示的構建頁面。
17)Jenkins經過讀取unittest框架生成的測試文件,在頁面上顯示測試結果和其餘各項指標。單擊構建頁面上的測試結果(Test Results)連接能夠查看Jenkins保存的測試結果。
18)以前配置的測試結果以JUnit格式生成。當單擊測試結果(Test Results)時,Jenkins將會顯示JUnit測試結果,以下圖所示,顯示測試結果摘要,其中失敗的測試會高亮顯示。
19)咱們也能夠單擊Package名字的連接來查看各個測試的詳細結果信息,以下圖所示:
20)Jenkins還會如下圖所示的格式在Dashboard主頁上顯示全部構建做業的最終狀態信息。
綜上所述,經過搭建Jenkins運行Python Selenium測試,從而實現天天晚上在無人值守的狀況下自動構建程序和執行測試。即實現了簡單的持續集成測試。