UI自動化持續化集成

自動化持續化集成-策略初稿html

 

1、 策略意義與相關解釋java

廣義的持續化集成是貫穿於整個開發流程的:開發開發完成相應的需求後,向SVN或是GIT服務器上提交代碼,此時持續化集成就會進行詞法檢查,語法檢查,代碼和註釋比例的檢查,運行單元測試用例;此時是開發的持續化集成,若是任何環境出現了問題,就會把代碼打回,通知相關開發作修改。若是此環節經過後,則會自動推送到測試環境上,完成自動部署;部署成功後,則調用咱們關聯的自動化測試用例,執行相應的測試用例,若是測試用例失敗則會根據重跑機制再次運行。確保真正失敗後,會發郵件或是短信通知相關的人員,作修改,當開發再次提交代碼的時候,整個流程又會執行一遍。數據庫

狹義的持續化集成就是隻有測試環境,咱們經過將測試用例接入到Jenkins中,而且根據須要設置定時執行或是綁定到開發的job上,觸發式執行。若是測試用例執行失敗後,就發送相應的通知給相關人等,通知他們去作相應的修改。在狹義持續化集成過程當中,是不包含咱們對開發部分的檢測和單元用例執行的。windows

2、 運用的技術及框架瀏覽器

1、整體框架:Jenkins(持續集成服務器)+Maven(項目管理)+SVN(代碼管理平臺)+WebDriver(自動化測試工具)+Java(腳本語言)+TestNG(測試框架)安全

2、VisualSVN:服務器

我這裏用的visualSVN本身模擬SVN框架

3Jenkins持續集成: svn

域名:http://localhost:8080/工具

用戶名:XXXXX  密碼:XXXX

3、 Jenkins集成測試服務器搭建步驟:

一、   原理:

  找任意一臺電腦爲jenkins服務器,進行搭建,而後經過svn管理更新最新的代碼,經過日程表定時執行自動化用例,輸出結果,反饋郵件

2、Jenkins從安裝到服務器搭建完畢

2.1 安裝 Jenkins

從官網上下載安裝程序:

(1) 打開官網:http://jenkins-ci.org/

(2) 能夠下載 war 包,而後運行命令:

$java -jar jenkins.war

(3) 下載 windows 版本的,運行 Exe 程序便可安裝。

(4) 安裝成功後,在網址中輸入:http://127.0.0.1:8080/。打開以下所示網頁,說明安裝成功。

2.2 Jenkins 的配置

(1)全局變量的設置

點擊 Jenkins 左側的「系統管理」—>「系統設置」,設置全局

變量:

JDK、Maven 配置:

配置一個 JDK、Maven 實例,請在每一節下面單擊 Add(新增) 按鈕,這裏將添加實例的名稱和絕對地址。下圖描述了這兩個部分。

 

JDK 別名:本身能夠命名,起到識別做用。

JAVA_HOME:這個是本機 JDK 的安裝路徑(錯誤的路徑會有紅字提示你的)

自動安裝:不推薦這個選項

(2)Maven 項目配置

 

設置本地的 Repository 路徑,在咱們 build 工程的時候下載相應的依賴包。

(3)Jenkins 訪問配置

 

Jenkins URL:jenkins 的訪問地址,這個是默認的,能夠改爲你喜歡的 hostname.

系統管理員郵件地址:設置 Jenkins 系統管理員的郵件,若是不設置在郵件通知的時候會出問題。

SSH 的端口號設置,還有 CVS 相關的設置,能夠採用默認的。

(4)郵件通知配置

根據設置提示,配置你要發送郵件的服務器信息以及 SMTP 認證的用戶名及密碼等。我的建議:這個郵件用戶名最好和上面的系統管理員郵箱一致,不然會出現莫名其妙的錯誤。

(5) Configure Global Security(全局安全設置)

在已運行的 Jenkins 主頁中,點擊左側的系統管理—>Configure

Global Security 進入以下界面:

 

啓用安全,選擇「Jenkins 專有用戶數據庫」—>「容許用戶註冊」,保存後即出現註冊和登陸選項。

註冊一個賬號,登陸後便可使用 Jenkins。

 

2.3 代碼持續化集成

配置完成後,咱們須要把代碼接入到 Jenkins 中,以完成咱們的

持續化集成相關的工做。

(1) 建立 Job

單擊左側的「新建」按鈕,在打開的頁面中選擇「構建一個自由風格的軟件項目」,而後輸入項目名字,如:「DemoApiTest」,單擊「Ok」對其進行配置。

 

(2) 配置項目

A,在打開的頁面中進行配置,輸入項目描述,方便咱們識別出項目的功能。是否丟掉舊的構建,以及相關設置。

B,源碼管理

此處輸入咱們要執行的源碼對應的 SVN 路徑,在上面咱們經過 VirtualSVN Server 來把咱們本地的文件變成了 SVN 對應的路徑,拷貝 我 們 設 置 的 路 徑 , 如 : https://58-PC/svn/APITestCases/TestCases 。 選 擇 「 Subversion」 , 在 Repository URL 後填寫這個路徑,回車後會提示受權問題,單擊 「enter credential」連接,在打開的頁面中輸入 SVN 的用戶名和密碼。再次返回到這個頁面後,報錯信息就會消失。

 

C,1構建

在增長構建步驟中選擇「Execute Windows batch Command」,而後輸入咱們的構建腳本,如咱們的接口執行命令是:

cd accuser ——表示進入這個測試用例集

mvn clean install ——表示開始編譯測試用例集

2構建觸發器:定時監控執行

A,打開要配置郵件通知的工程,單擊左側的「配置」連接,打開配置頁。

B,向下滾動頁面,找到「構建觸發器」,選擇「Build periodically」 定時執行。

C,設置定時執行,如:「H/5 * * * *」。

「日程表」中填寫 * * * * *,含義以下:

第一個參數表明的是分鐘 minute,取值 0~59;第二個參數表明的是小時 hour,取值 0~23;第三個參數表明的是天 day,取值 1~31;第四個參數表明的是月 month,取值 1~12;

最後一個參數表明的是星期 week,取值 0~7,0 和 7 都是表示星期天。

因此 「H/5 * * * *」,則表示每五分鐘執行一次。

D,保存工程配置後,工程會五分鐘執行一次。

E,保存配置:單擊保存按鈕,便可保存相關的配置。

(3) 構建 Job

進入工程,單擊左側的「當即構建」連接,構建項目。構建完成後,能夠看到左下的 Build History 下有相應的版本號。版本號爲藍色的時候表示構建成功,紅色表示構建失敗。

(4) 查看構建結果

單擊「Build History」下相應的版本號,進入到構建詳情頁。單擊右側的「Console Output」,進入控制檯輸出頁,能夠查看本次的構建輸出狀況。

至此,咱們的接口自動化代碼接入到了 Jenkins 中,但是尚未達到咱們的持續集成的目的。

2.4,Jenkins 高級應用

(1)失敗發送郵件

在咱們工程執行失敗後,咱們但願獲得相應的通知,而 Jenkins

也有相應的配置的。咱們在前面設置了郵件通知發送的相關配置,但是要達到真正發送郵件,咱們還須要在對應的工程中進行配置。

 

A,打開要配置郵件通知的工程,單擊左側的「配置」連接,打開配置頁。

B,向下滾動頁面,找到「增長構建後操做步驟」下拉框,選擇「E-mail Notification」項。

C,在 Recipients 後輸入要接收郵件的郵箱地址,多個郵件地址之間用空格分隔。

D,選擇「每次不穩定的構建都發送郵件通知」,保存後,在 job 運行失敗後便會給設置的郵箱發送郵件通知。

(2)發送郵件

安裝 Email Extension Plugin 插件

進入系統管理--系統設置

首先找到 Extended E-mail Notification 

(3)觸發執行

自動化測試用例一般在開發發佈一個版本後,咱們就執行,進行迴歸測試,這就要求咱們時刻監控着開發的 Job。一旦開發的 Job 執行完成,把代碼部署到了測試環境上,咱們就開始執行測試用例,具體設置以下:

 A,打開要關聯其餘 Job 的設置頁,找到構建觸發器項。

B,選擇「Build after other projects are build」項目,此時會展現下面幾項:

---Projecte to watch:須要監控的項目,也就是咱們要關聯的項目。

---Trigger only if build is stable:被監控的項目穩定時觸發。 ---Trigger even if the build is unstable:被監控項目即便不穩定也觸發。

----Trigger even if the build is fails: 被監控項目即便失敗也觸發。

能夠根據項目的狀況,選擇不一樣的觸發條件,這樣咱們的項目會隨着被監控程序的變化而隨時運行。(4)發送本身生成的報告

添加插件「Extended E-mail Notification」,而後打開要發送本身 產 生 報 告 的 工 程 的 設 置 項 目 , 找 到 「 增 加 構 建 後 操做」—>」Editable Email Notification」項目,進行相關的設置:

Disable Extened Email Publisher:是否關閉發送擴展郵件

Project RecipientList:接收這個郵件的郵箱地址列表

Project Reply_To List:抄送郵件的郵箱地址列表

Content Type:郵件內容格式

Default Subject:默認郵件主題

Default Content:默認郵件內容

默認內容示例:

<hr/>

<font size="4">

<font color="#FF0000">(本郵件是程序自動下發的,請勿回覆!)</font><br/><hr/>項目名稱:$PROJECT_NAME<br/>

構建編號:$BUILD_NUMBER<br/>

svn 版本號:${SVN_REVISION}<br/>

構建狀態:$BUILD_STATUS<br/>

觸發緣由:${CAUSE}<br/>

構建日誌地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/>

構建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/>

###單擊可查看報告文件詳情

運行結果:<a href="${BUILD_URL}../ws/report.html">Report Detail>>></a><br/> ${FILE,path="./report.html"}<br/><hr/> #將生成的報告嵌入到郵件中

</font>報告結果以下:

 

其餘設置以下:

在 Trigger 中添加觸發事件,在什麼狀況下發送這個自定義的郵件,如:Failure-Any,只要失敗就會發送郵件。

 

定義了觸發器後,咱們再定義郵件發送給誰,如:Recipient List,會把郵件發送給咱們上面定義的郵件接收列表中的全部郵箱地址。

設置完成後保存,此時咱們就會收到兩封郵件,一封是 Jenkins 本身發送的,一封是咱們自定義的。

4、 疑難問題彙總:

一、   jenkins調用selenium腳本不打開瀏覽器解決方法

Step 1. Control Panel(控制面板) -> Administrative Tools(管理工具) -> Services(服務),找到Jenkins,右鍵菜單,執行stop; 右鍵菜單 「屬性」 start type 選擇「Disabled」  點擊 應用,點擊肯定。(這一步目的:讓jenkins不在以windows 服務的方式在後臺運行)

Step2.  經過命令行啓動Jenkins

  java -jar "D:\Program Files (x86)\Jenkins\jenkins.war"

  固然,你們也能夠作個bat文件,之後每次啓動jenkins,雙擊運行這個bat文件就OK了,bat文件內容以下:

  echo "Jenkins CI automation testting"

D:

cd "D:\jenkins

java -jar "D:\jenkins\jenkins.war"

pause 

Step3. 從新建立Jenkins的Job,從新配置,在執行測試

注意:運行的jenkins.war決定jenkins主目錄在哪裏

問題解決了。

注意問題:

(1)經過這種方式啓動jenkins,以前以windows service 啓動jenkins的數據都丟失了,須要從新建立job。

(2)以前以windows service 啓動jenkins中安裝的插件也沒有了,須要從新安裝所需插件。