1. 程式人生 > >RF+Jenkins構建持續整合

RF+Jenkins構建持續整合

引入RF是為了能夠快速的開展自動化驗收測試,Jenkins而一種持續整合工具,用於監控持續重複的工作,持續的軟體版本釋出/測試專案,而通過RF+Jenkins可以有利的對RF構建的介面專案進行持續整合測試。Jenkins另一個強大之處就是它的分散式構建(在Jenkins的配置中叫做節點),分散式構建能夠讓同一套程式碼在不同的環境(如:Windows和Linux系統)中編譯、測試等。而且Jenkins構建的程式碼和產物最後自動拷貝到主節點。

簡單概括而言,結合RF+Jenkins開展持續整合基本步驟:

1、安裝Jenkins

2、新增節點

3、安裝RobotFramework外掛

4、配置Job

執行測試任務

本章節對於Jenkins如何搭建,RobotFramework外掛如何安裝,不作描述,內部組員可利用現有已搭建好環境,配置所需Job執行測試即可。

1.1  Jenkins普通任務配置

一、新增節點

啟動Jenkins服務的這臺機器在Jenkins裡叫做master,而其他的連到master上的機器(物理機、虛擬機器都可以)都是slave,也叫節點。

1、系統管理→管理節點→新建節點(左上角)

 節點名稱:建議使用字母、數字或字母和數字的組合。最好見名知意。不建議使用標點符號和中文(中文命名沒有問題,但Job中無法引用)

Dumb Slave新建一個節點

複製現有節點:從已存在的節點中複製一份配置(

如果存在節點才會顯示)

注:這是靜態連線的方式,就是先設定好節點,由slave自己去連master作為這個節點。

2、輸入Slave名字,點確定,進入下一步:

 針對上圖一些特殊配置項,進行一些說明:

# of executors表示在slave上可以並行執行幾個執行緒,即最大同時構建數量(根據機器的效能定,單顆四核cpu建議不要超過5)對於RF來說,建議設定為1

遠端工作目錄:節點的根目錄,即在slave上建立jenkins工作目錄的路徑,如設定為D:\JK(注意:如果目錄不存在,會自動建立目錄。你必須對該目錄有讀寫許可權,不然會報錯:hudson.util.IOException2: Failed to copy xxxx)

標籤:可以給slave加上一個或多個標籤,通過標籤選擇slave,用來對多節點分組,標記之間用空格分隔.例如'slave1 slave2'將會把一個節點標記上slave1slave2

啟動方法:啟動slave的方法,推薦選第二個Launch slave agents via Java Web Start

注意:如果是用來執行RF自動化測試案例的slave,嚴禁選擇windows service的方式,否則後果自負。

3、 點選儲存,進入下一步

 如上圖所示,有兩種方式可以啟動節點(都是JNLP方式。JNLP連線需要埠,預設連線埠是隨機的,埠更改 系統設定→Configure Global SecurityJNLP節點代理的TCP)

兩種方式啟動如下:

1.Launch agent from browser on slave  下載檔案slave-agent.jnlp檔案,雙擊開啟。

一般用在Windows系統上,需要javaws.exe(Javabin目錄中可以找到)程式才能開啟。如果提示錯誤,請解除安裝JDK後重新安裝。成功啟動如下圖所示:

點選左上角的File選擇Install as a service就可以新增為Windows的服務了(預設開機自動啟動)

2.Run from slave command line java -jar http://xxxx/slave-agent.jnlp  如果你配置了許可權那麼後面還有一串看不懂的隨機Key

下載slave.jar到本地,然後進入存放slave.jar的目錄,複製貼上並執行 java -jar slave.jar -jnlpUrl http://xxxxx  即可啟動。

注意:如果節點主機上不存在JDKJenkins會去自動下載,但Oracle對程式自動下載做了限制,會導致下載失敗,然後一直迴圈這個問題。(所以執行節點的主機建議在執行前,將所需環境搭建完整)

二、配置執行Job任務

1、進入首頁,點選新建任務

 對於RFJob來說,自由風格就可以了。多配置也可以,只不過多配置的略有不方便,看各自需要吧,比如你要把一套案例在多個不同配置的slave上執行,就可以用多配置的Job

2、選擇自由風格,點選OK,進入下一步:

 可配置選項很多,這裡就介紹幾種常用的配置項:

A .Restrict where this project can be run: 前面的標籤就在這裡用上了。用來指定這個Job在哪個標籤的slave上執行

B.原始碼管理:RF的案例原始碼管理,部門內部請選用GitLab

C.構建:我們要增加構建步驟-Execute Windows batch command,如下寫個簡單的命令,完整命令列引數大家自己在命令列輸入pybot.bat --help來看

D.構建後操作:我們要增加構建後步驟-Publishes Robot Framework test results,第一個output預設可以為空,如果前面的pybot.bat指定了輸出目錄,那麼這裡也要對應進行設定,否則他找不到output.xml就沒法解析結果了。

 3、儲存Job,點選立即構建,執行任務

可以點構建的進度條直接看到控制檯輸出,或者在點構建的名字在選單裡找控制檯輸出看結果,如下所示:

 RF外掛作用:主要用瞭解析RF執行後的output.xml檔案,將解析的結果展示出來。

1.2  Jenkins定時任務配置

上述簡述瞭如何配置一個普通的Jenkins Job任務,但此型別任務需人工的手動去執行構建操作,而Jenkins也可以配置定時任務,從而讓我們配置好的JOB在我們指定的時間去自動執行,下述講述如何配置Jenkins定時任務。

1、新增節點,配置Job等方法,步驟,如4.1章節所示。

2、在配置Job時,其中有一個構建觸發器的選項,如圖所示:

 如上述,選擇build periodly(即週期構建),如上圖表示每天2:00 自動構建一次。

日程表格式:用 cron 格式,五個空格隔開的字元組成,分別表示分 時 天 月 年,*表示所有

10 1220 * * *表示的就是每天的12點和20點執行一次構建

2*/5 * * * * 表示每5分鐘執行一次構建

30 2 * * * 表示每天2點執行一次構建

3、通過增加build periodly選項,就可完成自動構建任務。

1.3  Jenkins郵件傳送配置

在上一章節中,當我們配置了自動構建專案,為了可以及時知道構建結果,這裡我們介紹如果當構建專案後,如何自動將構建後的結果以郵件的形式通知到指定人員。

這裡介紹兩種Jenkins郵件通知方法:

一、Jenkins內建郵件功能:

1、配置系統管理員郵件地址(即設定傳送者的郵箱地址)

進入Jenkins首頁-->系統管理-->系統配置頁面,在Jenkins Location位置,配置系統管理員郵箱地址,如下圖所示:

2、配置郵箱SMTP

通過“系統管理”-“系統設定”,進行系統設定介面,移動到設定頁面的最下面,“郵件通知”部分,配置stmp伺服器地址和使用者預設郵件字尾,使用者名稱,密碼等,如圖

 注:在系統管理員那個地方設定的email地址要和email配置的相同

3、測試地址正確性

 可以勾選 “通過傳送測試郵件配置”測試此配置能否連通。

4、對構建的Job配置郵件傳送

在配置job任務時,新增構建後步驟“E-mail Notification”,如下圖:

 Recipients中輸入接收者的郵箱地址,這樣每次build後都會發送郵件給這個接收者, 這種內建郵件通知功能,只能發給 固定的物件,且格式單一(txt)。

 上述常用欄位解釋如下:

DefaultRecipients自定義預設電子郵件收件人列表。如果沒有被專案配置覆蓋,該外掛會使用這個列表。您可以在專案配置使用$DEFAULT_RECIPIENTS引數包括此預設列表,以及新增新的地址在專案級別。新增抄送:cc:電子郵件地址例如,CC:[email protected]

Emergencyreroute如果這個欄位不為空,所有的電子郵件將被單獨傳送到該地址(或地址列表)。

ExcludedCommitters防止郵件被郵件系統認為是垃圾郵件,郵件列表應該沒有擴充套件的賬戶名(:@domain.com),並且使用逗號分隔

 DefaultSubject自定義郵件通知的預設主題名稱。該選項能在郵件的主題欄位中替換一些引數,這樣你就可以在構建中包含指定的輸出資訊。

MaximumAttachmentSize郵件最大附件大小

 DefaultContent自定義郵件通知的預設內容主體。該選項能在郵件的內容中替換一些引數,這樣你就可以在構建中包含指定的輸出資訊。

 2、外掛用於job配置頁面,新增構建後步驟“Editable Email Notification

 其它各常用欄位屬性,在此不再作過多解釋,如想了解,請自行度娘。

 3、預設情況下,是沒有配置的觸發器,所以預設情況下不會發送郵件。請點選”高階”按鈕。該選項允許您各種型別的郵件觸發器指定接收者。要增加更多的觸發器,選擇“AddaTrigger”旁邊下拉列表中的型別,它會增加到控制元件上面的列表中。如下圖:

 4、至此, 郵件配置完成。

 1.4  Jenkins程式碼檢查配置

此章節主要介紹,利用jenkins配置定時檢測git遠端倉庫是否有程式碼checkin,若有則觸發進行構建並執行RF 命令,最終在jenkins中生成report,且email通知你構建結果, 從而實現了持續整合。

1、安裝Git plugin ,進入“系統管理”→ “外掛管理”切換到Available tab, 選擇GitpluginGitLabPluginGitClientPlugin,如果你的git倉庫是private的還需要安裝SSHSlavesplugin , SSHCredentialsPlugin 

2、配置Git安裝路徑,嚴格來講應該也需配置JDK路徑,但筆者除錯時,未配置JDK,也可正常,故配置JDK暫略,方法一樣,Git路徑配置如下:

3Git帳號配置(這步應該可以省略):

4、配置Job任務,原始碼管理選擇git,填寫“Repository URL ”,並加上相應的“Credentials ”,其中認證資訊用私鑰的話乾脆直接把私鑰內容填上去就行了,省的不知道目錄查詢規則還不知道出的啥問題,如下圖所示:

 注意:私有專案在認證時一定選擇SSH Username with private key,公鑰配置在git端的專案裡的public keys.私鑰配置在jenkins裡即可.直接輸入私鑰,要完整複製 ~/.ssh/id_isa裡面的內容。如果是公有專案,在認證時,可以選擇使用者名稱密碼認證的方式。

5、 構建觸發器:可以通過Poll SCM來設定定時檢查編譯功能

Poll SCM:定時檢查原始碼變更(根據SCM軟體的版本號),如果有更新就checkout最新code下來,然後執行構建動作。

比如*/5 * * * * 就是每隔5分鐘檢查一次,如果git倉庫中有更新,則執行build操作。
如圖所示:

 注:Build periodically也是週期進行專案構建(但它不care原始碼是否發生變化)

轉自:http://www.cnblogs.com/jinjiangongzuoshi/p/5018996.html

相關推薦

RF+Jenkins構建持續整合

引入RF是為了能夠快速的開展自動化驗收測試,Jenkins而一種持續整合工具,用於監控持續重複的工作,持續的軟體版本釋出/測試專案,而通過RF+Jenkins可以有利的對RF構建的介面專案進行持續整合測試。Jenkins另一個強大之處就是它的分散式構建(在Jenkins的

基於 Jenkins 構建持續整合任務

1.1 Jenkins 配置使用心得 我是在windows10上安裝的,安裝過程很簡單,從官網上下載下來msi安裝包,雙擊執行就好了。安裝程式完成後會自動開啟http://localhost:8080網頁。我在這一步出現了點小問題,自動開啟的網頁顯示需要使用者名稱和密碼,一番摸索才明白原來是因為我電腦裝了o

基於Docker容器的,Jenkins、GitLab構建持續整合CI

摘要: 一、場景: 開發者將程式碼提交(push)到GitLab後,GitLab通過Hook通知jenkins,jenkins自動從GitLab中獲取專案最新的原始碼進行整合和釋出。 二、準備: 基於Docker,建立一個私有GitLab的容器,建立一個jenkins的容器 三、步驟 1、

使用Jenkins搭建持續整合(CI)環境(實現自動構建)(轉載)

轉載地址:http://www.cnitblog.com/luckydmz/archive/2012/01/03/77007.htmlhttp://www.cnitblog.com/luckydmz/archive/2012/01/03/77007.html 例如我

基於centos7 + jenkins + docker + svn + 阿里雲私有倉庫構建持續整合環境

前提準備 本文件的所有操作都是基於root使用者,非root使用者請新增sudo命令。 Centos7 預設已完成網路配置以及完成依賴跟新 # yum update 安裝Docker 下載Docker # yum install -

Jenkins + Github持續整合構建Docker容器

本文分兩部分,第一部分是手動計劃任務的方式構建Github上的Docker程式,第二部分是用Github webhook Trigger一個自動構建任務。 Jenkins採用2.5版本 Docker採用1.7.1 程式碼託管使用的Github官網 系統為IBM B

JMeter+ant+Jenkins部署持續整合環境

首先,安裝好幾個東西,配置好環境變數,接下來一一演示下: 1、JDK 存放路徑:D:\java\jdk   環境變數: JAVA_HOME=D:\java\jdk CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

ruby Rspec+jenkins+allure持續整合

1.Allure2使用說明 2.ruby下載allure的gem gem install allure-rspec 3.修改原始碼 C:\Ruby23-x64\lib\ruby\gems\2.3.0\gems\allure-rspec-0.8.0\lib\allure-rspec\formatter.

[轉]使用jenkins實現持續整合

本文轉自:https://www.cnblogs.com/zishengY/p/7170656.html 一、jenkins 介紹   它是一個自動化的週期性的整合測試過程,從檢出程式碼、編譯構建、執行測試、結果記錄、測試統計等都是自動完成的,無需人工干預

ansible+gitlab+Jenkins實現持續整合

ansible簡介:   一、ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程式部署、批量執行命令等功能。   二、ansible是基於模組工作的,本身沒有批

Jenkins+Postman持續整合搭建及使用

window上使用Jenkins 一、安裝nodejs 1.安裝postman需要先安裝nodejs 下載地址: http://nodejs.cn/download/    下載後一路next ,安裝後,開啟cmd,輸入node -v ,看到輸出nod

jenkins實現持續整合

下載安裝 軟體版本需求:     JDK要求1.7以上,ant版本1.9系列都可以,jenkins版本2.33以上。jdk的安裝不再說了,下面只說一下ant和jenkins的安裝和配置:     ant是基於java的一款構建工具,通過配置build.xml,讓

Gradle進階:5:結合Jenkins進行持續整合

結合Jenkins進行gradle的持續構建有多種方式,可以在Jenkins的容器種直接安裝gradle並直接使用,也可以通過jenkins的gradle外掛進行使用,也可以通過呼叫gradle的映象來進行使用。這篇文章以jenkins的gradle外掛使用方式為例,介紹如何在jenk

Docker+Jenkins持續整合環境(1)使用Docker搭建Jenkins+Docker持續整合環境

來源:https://www.cnblogs.com/xiaoqi/p/docker-jenkins-cicd.html 本文介紹如何通過Jenkins的docker映象從零開始構建一個基於docker映象的持續整合環境,包含自動化構建、釋出到倉庫\並部署上線。 0. 前置條件 伺服器安

gitlab + jenkins + salt持續整合

目的:主要是瞭解持續整合方面的知識,分析gitlab的對於svn的優勢,瞭解gitlab和jenkins的原理,再配合指令碼和salt做一個簡易的持續整合。環境我使用三臺機器做測試: 三臺機器系統都是c

如何使用Jenkins進行持續整合測試

上篇,將Jenkins的持續整合測試環境搭建成功了,接下來,開始我們的建立任務和執行構建。 (一)建立任務 1.建立任務 點選首頁“建立一個新任務”的連結,如下: 2.選擇 Jenkins 任務型別 Jenkins 提供了四種類型的任務:

Python Web專案中使用Jenkins進行持續整合CI

轉載原文:http://www.hustlzp.com/post/2014/08/jenkins 在一個專案的開發過程中,往往會有一些需要反覆執行的操作,比如編譯、測試、部署。具體於Flask專案,我一般使用nose執行單元測試、fabric進行部署、pylint執行程式碼質量檢測等。這些頻繁需要執行

Mac上使用jenkins+git持續整合淺析

  本文旨在讓同學們明白如何讓jenkis在mac筆記本上執行,並實際與一個最簡單的git地址互動並執行簡單的jenkins任務,如果學習本文,需要先按照https://www.cnblogs.com/xuezhezlr/p/8597715.html在mac上搭建tomcat和java,jenkins等環境,

使用Jenkins搭建持續整合(CI)環境

例如我儲存到 D:\jenkins\jenkins.war 執行Jenkins需要JRE的支援Java5 or later 在命令列下輸入 java -jar D:\jenkins\jenkins.war 即可啟動jenkins。預設會執行在8080埠,正常啟動完成如下圖   我們可以在瀏覽器輸入127.

Jenkins實現持續整合中的那些坑

小夥伴在《這些年我們一起搞過的持續整合~Jenkins+Perland Shell script》中詳細介紹了優化後的job流,接下來總結一下在構建這一套job中遇到的Shell  Script和Jenkins的問題。 1.      比較兩個檔案後有特殊字元< 會導