在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 

相关文章
相关标签/搜索