在Jenkins上配置SoapUI项目

Jenkins是一种持续集成工具,对于持续的软件发布/测试项目非常实用。安装好Jenkins以后,需要的步骤如下:

1. 新建项目(New Item)-> 输入将展示在Jenkins Job中的Project的名字 -> 选择Project的风格或者直接复制现有的一个类似的Jenkins Job.

161607_xRaX_942203.png

如果要复制现有的Job,这里面只需要输入部分名字,Jenkins就会自动查询相关的所有Project:

161615_kVJA_942203.png

2.点击OK以后,直接会跳转到该Project的配置界面,我选择复制了一个Project,该Project是一个自由组合类型的Job,现在只截取部分重要的配置:

  • 这里将配置服务器保留该Project的旧记录策略:

161831_LXmc_942203.png

有一个现成的Project就是上述配置,导致的结果是Build History只有5条记录:

162027_czn5_942203.png

  • 参数化构建过程:

162137_xnuE_942203.png

具体要参数化什么参数,要看不同的Project需求,我这里参数化了3个参数:Environment, TestSuite和Recipients. 分别表示API的运行环境,将要运行的Project中的哪一个TestSuite,收到该Project运行报告的收件人。

这些配置用于:

点击Build with Parameters以后,会弹出选择对话框:

162358_5orx_942203.png

对于参数化类型是“Choice”的选项,写在第一行的就是该选项的默认值。(比方说Environment默认是第一行的QA)

  • 选择Jdk和Hub:

162520_Ipqc_942203.png

这里如果没有特别需要,JDK选项可以不选。但是我在这个Project中用到了JDK8的特性和功能,所以在配置的时候就已经要指明JDK。

至于选择的Hub,是你自己事先建好的。(了解Hub和Node,请参考:https://my.oschina.net/u/942203/blog/847034)

因为我并没有在这个Jenkins服务器上建立Node的权限,所以不能一步步详细解释怎么做,只能贴上现有的该Hub的Node:(该Hub有5个Nodes)

162915_A6qT_942203.png

 

 

  • 源码管理:

163038_0fW8_942203.png

至于用什么源码管理工具,每个公司都不同,上图用的是Git。需要提供Git地址,登录账号还有代码分支。

  • 构建环境:

163208_Q81S_942203.png

这里选择在构建之前删除原有的workspace(这个workspace中的内容就是上图Git地址下载的代码),虽然会影响性能,但是可以避免一些代码同步问题。

下面配置的Absolute:60,意思是:如果这个项目60分钟后还没有下载构建运行完毕,就强行停止。(因为一个Jenkins上面有很多job的,大家都在排队,不能因为这一个Project导致后面的都被卡住了)

  • 构建触发器:

163951_O5CM_942203.png

具体怎么配置可以点击文本框的问号,根据弹出来的解释自己配置合适的时间点,每到该时间点,系统就会自动运行该Jenkins Job。

  • 构建:

163523_sQzO_942203.png

第一条命令是在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项目,这明显找不到,会报错的。

  • 构建后操作:

165850_klB9_942203.png

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

如果你添加的是JUnit test result report,是这样的:

165937_bXOo_942203.png

邮件设置:

170252_cM1f_942203.png

设置了邮件收件人和邮件内容。因为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生成的失败的测试报告,我也作为邮件的附件发送了。

170151_s68d_942203.png

最后这一项是设置邮件发送策略,我选择的是“Always”,不管是成功还是失败,都发送给${Recipients}。

 

如果想知道更加全面的Jenkins配置参数,可以参考下面的一片文章:

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

 

转载于:https://my.oschina.net/u/942203/blog/1540637

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值