在Jenkins上配置SoapUI項目

Jenkins是一種持續集成工具,對於持續的軟件發佈/測試項目很是實用。安裝好Jenkins之後,須要的步驟以下:css

1. 新建項目(New Item)-> 輸入將展現在Jenkins Job中的Project的名字 -> 選擇Project的風格或者直接複製現有的一個相似的Jenkins Job.html

若是要複製現有的Job,這裏面只須要輸入部分名字,Jenkins就會自動查詢相關的全部Project:服務器

2.點擊OK之後,直接會跳轉到該Project的配置界面,我選擇複製了一個Project,該Project是一個自由組合類型的Job,如今只截取部分重要的配置:ide

  • 這裏將配置服務器保留該Project的舊記錄策略:

有一個現成的Project就是上述配置,致使的結果是Build History只有5條記錄:工具

  • 參數化構建過程:

具體要參數化什麼參數,要看不一樣的Project需求,我這裏參數化了3個參數:Environment, TestSuite和Recipients. 分別表示API的運行環境,將要運行的Project中的哪個TestSuite,收到該Project運行報告的收件人。性能

這些配置用於:測試

點擊Build with Parameters之後,會彈出選擇對話框:ui

對於參數化類型是「Choice」的選項,寫在第一行的就是該選項的默認值。(比方說Environment默認是第一行的QA)spa

  • 選擇Jdk和Hub:

這裏若是沒有特別須要,JDK選項能夠不選。可是我在這個Project中用到了JDK8的特性和功能,因此在配置的時候就已經要指明JDK。.net

至於選擇的Hub,是你本身事先建好的。(瞭解Hub和Node,請參考:https://my.oschina.net/u/942203/blog/847034)

由於我並無在這個Jenkins服務器上創建Node的權限,因此不能一步步詳細解釋怎麼作,只能貼上現有的該Hub的Node:(該Hub有5個Nodes)

 

 

  • 源碼管理:

至於用什麼源碼管理工具,每一個公司都不一樣,上圖用的是Git。須要提供Git地址,登陸帳號還有代碼分支。

  • 構建環境:

這裏選擇在構建以前刪除原有的workspace(這個workspace中的內容就是上圖Git地址下載的代碼),雖然會影響性能,可是能夠避免一些代碼同步問題。

下面配置的Absolute:60,意思是:若是這個項目60分鐘後尚未下載構建運行完畢,就強行中止。(由於一個Jenkins上面有不少job的,你們都在排隊,不能由於這一個Project致使後面的都被卡住了)

  • 構建觸發器:

具體怎麼配置能夠點擊文本框的問號,根據彈出來的解釋本身配置合適的時間點,每到該時間點,系統就會自動運行該Jenkins Job。

  • 構建:

第一條命令是在workspace文件夾下建立一個「result-output」文件夾,用來存放該project的輸出內容,例如失敗後的文件之類的。。。

第二條是重中之重,用命令行來運行Node服務器上的SoapUI Project,由於這個Project須要用到一個特別的jar包,這個jar包被添加到了Ready!API 1.9.0安裝目錄下的lib文件夾下了,因此這裏我指定了要運行該版本的SoapUI。 若是不須要特別指定,這裏能夠將"READYAPI_PRO_190"改爲「READYAPI_PRO_HOME」。  (由於SoapUI升級之後,原來版本的文件夾仍然放在原來的位置,因此一個電腦上能夠同時有不少版本的SoapUI, 若是不當心複製jar包到已經不用的SoapUI版本中,這裏必定要指定版本哦)

這兩個變量都是Jenkins管理員在服務器端配置的,我沒有權限因此看不到,只能用。。。

須要說明的是:

具體每一個小參數-a -j -E。。的含義網上有不少帖子,能夠參考其中一篇文章:https://my.oschina.net/u/942203/blog/1540607

我這裏只是運行了Choice中選中的某一個TestSuite, 因此在命令行裏面添加了 -s"%TestSuite%", 若是你要運行整個Project,能夠去掉該語句。

最後的「BuySideAPI_Accuracy「是這個Project在SoapUI中建立的時候的名字,若是你如今調用的是SoapUI當前使用版本,即"READYAPI_PRO_HOME", 那麼末尾的Project就跟如今的workspace在一個目錄下,就不須要強制給出project的絕對路徑。 我這裏用絕對路徑是由於testrunner.bat所對應的SoapUI版本問題,致使必定要用絕對路徑,不然,它就會在SoapUI安裝目錄下找BuySideAPI_Accuracy項目,這明顯找不到,會報錯的。

  • 構建後操做:

指明Jenkins生成的Report放在result-output文件夾下。

若是你添加的是JUnit test result report,是這樣的:

郵件設置:

設置了郵件收件人和郵件內容。由於Jenkins自動生成的報告是在result-output文件夾下的html文件,並且失敗的和總體的報告不在同一個文件,因此爲了方便查看,這裏寫了HTML代碼整合那些生成的報告,而且添加了Project的狀態,環境之類的字段:

<link title="Style" type="text/css" rel="stylesheet" href="stylesheet.css">

<span style="font-family:verdana;color:black;font-weight:bold;">Project : </span>
<span style="font-family:verdana;color:black;">BuySide_RiskModel_API_SoapUI Project Report</span> <BR> <BR>

<span style="font-family:verdana;color:black;font-weight:bold;">Test Suite : </span>
<span style="font-family:verdana;color:black;">${TestSuite}</span> <BR> <BR>

<span style="font-family:verdana;color:black;font-weight:bold;">Environment : </span>
<span style="font-family:verdana;color:red;">${Environment}</span> <BR> <BR>

<span style="font-family:verdana;color:black;font-weight:bold;">Build Status : </span>
<span style="font-family:verdana;color:red;">${BUILD_STATUS}</span> <BR> <BR>

<span style="font-family:verdana;color:black;font-weight:bold;">Trigger Cause : </span>
<span style="font-family:verdana;color:black;">${CAUSE}</span> <BR> <BR>

<span style="font-family:verdana;color:black;font-weight:bold;">SoapUI Test Results : </span>
<span style="font-family:verdana;color:black;"><a href=https://"你的jenkins Job路徑「/BuySide_RiskModel_API_SoapUI/ws/result-output/index.html>BuySide_RiskModel_API_SoapUI Test Result</a></span>&nbsp

<HR style="text-align:left;" width="95%" color=#A6CAF0 size=20 />
${FILE,path="result-output/overview-summary.html"}

<HR style="text-align:left;" width="95%" color=#A6CAF0 size=20 />
${FILE,path="result-output/alltests-fails.html"}

由於這裏有樣式,因此還須要將樣式文件stylesheet.css放到指定位置,這裏我設置的是workspace/TestData/.css, 因此須要將stylesheet.css放到TestData文件夾下:


body {
    font:normal 14px verdana,arial,helvetica;
    color:#000000;
}
table tr td, table tr th {
    font-size: 14px;
}
table.details tr th{
    font-weight: bold;
    text-align:left;
    background:#a6caf0;
}
table.details tr td{
    font-size: 12px;
    background:#eeeee0;
}

p {
    line-height:1.5em;
    margin-top:0.5em; margin-bottom:1.0em;
}
h1 {
    margin: 0px 0px 5px; font: 16px verdana,arial,helvetica
}
h2 {
    margin-top: 1em; margin-bottom: 0.5em; font: bold 14px verdana,arial,helvetica
}
h3 {
    margin-bottom: 0.5em; font: bold 12px verdana,arial,helvetica
}
h4 {
    margin-bottom: 0.5em; font: bold 12px verdana,arial,helvetica
}
h5 {
    margin-bottom: 0.5em; font: bold 12px verdana,arial,helvetica
}
h6 {
    margin-bottom: 0.5em; font: bold 12px verdana,arial,helvetica
}
.Error {
    font-weight:bold; color:red;
}
.Failure {
    font-weight:bold; color:purple;
}
.Properties {
  text-align:right;
}
 

還有一個附件: result-output/*FAILED.txt,這是Jenkins生成的失敗的測試報告,我也做爲郵件的附件發送了。

最後這一項是設置郵件發送策略,我選擇的是「Always」,不論是成功仍是失敗,都發送給${Recipients}。

 

若是想知道更加全面的Jenkins配置參數,能夠參考下面的一片文章:

http://www.360doc.com/content/14/1110/10/7811581_423993429.shtml 

相關文章
相關標籤/搜索