hudson持续集成测试白皮书10.docx

上传人:b****6 文档编号:4688700 上传时间:2022-12-07 格式:DOCX 页数:17 大小:922.61KB
下载 相关 举报
hudson持续集成测试白皮书10.docx_第1页
第1页 / 共17页
hudson持续集成测试白皮书10.docx_第2页
第2页 / 共17页
hudson持续集成测试白皮书10.docx_第3页
第3页 / 共17页
hudson持续集成测试白皮书10.docx_第4页
第4页 / 共17页
hudson持续集成测试白皮书10.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

hudson持续集成测试白皮书10.docx

《hudson持续集成测试白皮书10.docx》由会员分享,可在线阅读,更多相关《hudson持续集成测试白皮书10.docx(17页珍藏版)》请在冰豆网上搜索。

hudson持续集成测试白皮书10.docx

hudson持续集成测试白皮书10

持续集成测试白皮书

一、持续集成整体介绍

Hudson是一个可扩展的持续集成引擎。

主要用于:

持续、自动地构建/测试软件项目.监控一些定时执行的任务。

Hudson拥有的特性包括:

1)易于安装-只要把hudson.war部署到servlet容器,不需要数据库支持。

2)易于配置-所有配置都是通过其提供的web界面实现。

3)集成RSS/E-mail/IM-通过RSS发布构建结果或当构建失败时通过e-mail实时通知。

4)生成JUnit/TestNG测试报告。

5)分布式构建支持-Hudson能够让多台计算机一起构建/测试。

6)文件识别-Hudson能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。

7)插件支持-Hudson可以通过插件扩展,你可以开发适合自己团队使用的工具。

Sonar是一个开源的质量管理平台,专注于从项目到类方法的持续的分析和测量技术质量,它把代码质量相关软件集成到一起统一管理;简单来说,hudson是持续、自动地构建/测试软件项目,而sonar则是持续,自动地统计并分析软件项目的相关质量数据,用于评估和度量软件项目质量。

二、平台搭建(hudson+sonar)

Hudson搭建:

1、安装:

1)下载最新的版本(它打包为一个WAR文件)。

hudson官方网址:

http:

//hudson-ci.org/

2)运行java-jarhudson.war。

注意:

Hudson需要运行Java5以及以上的版本。

还有一种安装方式就是将下载的war包文件部署到servlet容器,然后启动容器,在浏览器的URL地址栏中输入类似http:

//localhost:

8088/hudson/这样的地址即可。

下图是安装成功后的界面(使用的是XP+tomcat+java5环境):

2、启动:

进入到服务器目录下/home/用户名/apache-tomcat-6.0.20/bin

执行脚本shutdown.sh或者startup.sh进行重新或者停用

3、系统配置:

在已运行的hudson主页中,点击左侧的系统管理—>系统设置:

在系统配置页面,这个列表中的第一个项显示的是Homedirectory。

这里包含了Hudson要执行的所有工作区和存储它的所有配置。

为了配置一个JDK和Maven2实例,请在每一节下面单击Add按钮,这里将添加实例的名称和绝对地址。

建议不要勾选Installautomatically选项,而是输入用户本机的java,maven2的安装路径并命名。

再介绍该页面其他文本信息所表达的含义:

system.message填写一些说明信息

Quietperiod:

hudson定时构建工程的时间(秒)

 Enablesecurity:

设置hudson登陆的规则(默认为匿名登陆),具体见下文介绍

TCPportforJNLPslaveagents:

不了解JNLP不敢胡写总之就是三种方式:

固定(fixed)随机(Radom)不使用(disabled),使用固定时可以填入JNLP信息

securityrealm:

可以使用中间件容器,数据库,LDAP来验证安全,

authorized:

可以设置身份的验证方法:

系统用户,匿名用户,自定义用户,还有继承用户(此处也在研究中,建议使用匿名用户)

JDKinstallations:

设置JDK的安装路径

Shellexecutable:

设置windowshell命令

Antinstallation:

设置ant的安装路径

maveinstallation设置mave的安装路径

cvsexecutable:

设置cvsnt执行进程的路径(cvs.exe)

.cvspassfile:

设置cvsnt管理员文件的路径(passwd文件)

e-mailnotification:

设置当发生错误时发送的邮箱地址

hudsonurl:

就是hudson的默认地址

还可以配置服务器的其他几个方面,比如向Hudson提供一个电子邮件服务器的位置,以便在构建失败时接收电子邮件。

根据您的组织设置电子邮件的方式,可能需要让系统管理员帮助设置这个特性。

设置电子邮件并不是必需的;Hudson还支持以RSS作为通知机制,对于某些人来说,这种方式比电子邮件更好。

究竟选择哪些通知机制完全取决于您。

sonar搭建:

1.    下载 

到官方网站下载Sonar的压缩包,解压到任意目录 http:

//www.sonarsource.org/downloads/

2.    Mysql数据库安装

去没有sql官网上下载mysql的rpm包:

MySQL-client-community-5.1.45-1.rhel5.i386.rpm和MySQL-server-community-5.1.45-1.rhel5.i386.rpm

分别rpm–ivhMySQL-server-community-5.1.45-1.rhel5.i386.rpm

rpm–ivhMySQL-client-community-5.1.45-1.rhel5.i386.rpm

3.    登陆mysql,mysql的初始用户名密码为root/空

正常的登录为mysql–usonar–psonar

4. 创建数据库

Sonar默认使用嵌入式Derby数据库,如果要迁移到Mysql上,需首先创建一个sonar/sonar的UTF-8的mysql数据库,并授权访问sonar库 

mysql>CREATEDATABASEsonarCHARACTERSETutf8COLLATEutf8_general_ci; 

mysql>grantallprivilegesonsonar.*to'sonar'@'%'identifiedby'sonar'; 

mysql>flushprivileges; 

5.修改confsonar.properties文件:

 

Properties代码:

 

#sonar.jdbc.url:

jdbc:

derby:

//localhost:

1527/sonar;create=true 

#sonar.jdbc.driver:

org.apache.derby.jdbc.ClientDriver 

#sonar.jdbc.defaultTransactionIsolation:

#sonar.jdbc.validationQuery:

values

(1) 

sonar.jdbc.url:

jdbc:

mysql:

//服务器IP地址:

3306/sonar?

useUnicode=true&characterEncoding=utf8 

sonar.jdbc.driver:

com.mysql.jdbc.Driver 

sonar.jdbc.validationQuery:

select1 

5、修改服务器的maven插件的settings.Xml,添加以下配置信息即可

sonar

true

jdbc:

mysql:

//服务器IP地址:

3306/sonar?

useUnicode=true&characterEncoding=utf-8

com.mysql.jdbc.Driver

sonar

sonar

http:

//服务器IP地址:

9000

6.启动sonar 

执行位于以下脚本 

在linux:

$sonar_home/bin/linux-x86-64/sonar.sh

启动sonar程序 

7.hudson上面安装sonar插件

1)点击

2)进入

3)点击

,选择soanr插件,在页面右下角点击安装

4)页面提示成功,即标识完成sonar插件的安装

5)重启hudson,插件就生效了。

8.web页面配置

·点击

,进入

,配置sonar的mysql数据库连接信息如下图所示,要根据自己服务器的具体信息进行相应的配置。

Name

 

Disable

Advanced...

 

ServerURL

 

ServerPublicURL

 

DatabaseURL

 

Databaselogin

 

Databasepassword

 

Databasedriver

做完以上步骤基本上hudson+soanr就已经装好了。

Sonar使用介绍:

根据平台搭建介绍的方法,正确地搭建hudson和sonar平台后,点击下图中链接进入项目的配置页面

在配置页面的最下方会出现sonar插件配置项,勾选上即能在hudson每次构建和编译项目时将单元测试覆盖情况,findbugs统计情况等结果统计到sonar平台中进行分析,并生成报告

在编译成功后,点击下图中Sonar按钮(或直接通过IP端口访问)

即可进入sonar项目管理页面,如下图,找到对应项目并点击标题即可进入报告页面;

Buildtime表示该报告生成的时间

sonar生成的报告如下图所示

其中

1.表示报告生成时间及代码包版本

2.项目规模(包括代码行,类,包数目的统计)

3.项目注释情况

4.代码复杂度

5.单元测试覆盖情况,单元测试运行情况

6.findbugs结果统计

点击报告中的数据可以进入详细数据页面,下面以findbugs和单元测试结果为例,

1.查看Findbugs报错的问题

Step1:

点击错误报告中问题等级链接,

Step2:

根据需要点击想查看的模块,

Step3:

在下方就能找到对应的代码,确保选择的tab页为Violations就能看到Findbug发现的问题;

其中前面的红色箭头为问题等级标识,对应着上面的major等级

2.查看单元测试覆盖率情况

Step1:

点击左侧的Coveragetab就能进入单元测试覆盖情况列表,如下图红圈部分列出覆盖率,没有覆盖的行数等信息

Step2:

代码前方的数字表示这行代码在单元测试中执行的情况,最前面的数字表示执行的次数,50%表示这个判断语句只执行了其中1条分支,0表示改行代码没有单元测试覆盖

持续集成曲线图

另外,点击报告页面中下图所示的Timemachine按钮,可以查看该项目质量的趋势情况

如下图所示

分别展示代码复杂度,单元测试覆盖率,及findbugs结果情况的线性增长情况。

FAQ

Q:

Hudson编译正常但sonar中并没有统计到数据

A:

这个原因是很多,下面说说最常见的2种原因解决办法,

(1)单元测试没有正常运行,可以通过hudson查看系统编译日志,确认单元测试是否已经正常执行,如发现单元测试被跳过了,可以把hudson的编译命令写成mvncleaninstall-Dmaven.test.skip=false,不跳过单元测试执行编译。

(2)sonar数据收集异常,若通过hudson查看系统编译日志,发现单元测试已经正常执行,但是在调用sonar时发生错误;可以尝试远程登录到hudson服务器,进入项目代码文件夹,通过命令mvncleaninstall-Dmaven.test.skip=false–Dautoconfig.skip=truesonar:

sonar手工编译项目,编译成功后检查数据是否正常统计到sonar中。

目前存在需要先手工编译1次,才能正常采用hudson编译统计结果的问题。

三、项目工程部署

1、新建一个job:

(构建具体项目的任务)

这时,需要为新的构建任务指定一个名称。

(这里输入的任务名称为:

maven-introduce)这里有几种的任务类型可供您选择,鉴于初步介绍,先选择Buildafree-stylesoftwareproject,这个更加普遍化,可以更灵活的配置,一般二房库的部署建议选择该种类型,对于其他的类型,经常使用的是Copyexistingjob;这主要为了能在复制现有的任务基础上新建一次构建任务。

如果是maven部署方式的应用可以选择buildamaven2product工程。

点击OK按钮,进入下一界面。

如下图:

此图中有很多构建任务的设置,具体介绍如下:

Projectname是要运行的项目名称。

Description是一个自由项,主要用来说明你关于这次构建工作的描述。

可不填。

Discardoldbuilds是控制着您想要在Hudson所在的磁盘把构建记录存储的有效期(诸如控制台输出、编译产成品等等)。

Hudson为此提供了两个标准:

1。

时间驱动。

在Hudson中您可以判断如果达到一定时限来删除一条记录(例如,七天前)。

2。

数量驱动。

在Hudson中您可以确保它拥有N份构建。

如果又有新的构建开始,最早的那份(记录)就将被删除。

Hudson也可以让您建立的个别构建定义为'永远保持这个记录',以便防止某些重要的构建被自动丢弃。

)这里输入的是5,也就是hudson确保5份构建。

Disablebuild:

如果这里被勾选,这项工作将不会执行构建,直到选项禁用为止。

Sourcecodemanagement:

在默认情况下是这三个选项:

Subversion,CVS,None

如果您安装了一个与SCM相关的插件,并重新启动Hudson,那么在这个清单上也将出现一些新的选择。

Ps:

以上五点中除了第一点之外,其他都是可选择项,一般没有特殊需求不做勾选。

BuildTriggers下包含下列三个选项

Buildafterotherprojectsarebuilt:

此选项支持一条装配(流水作业)线——作业依赖:

一个作业依赖于另一个作业的输出的情况——就是可以支持连续编译多个任务,设置这个选项后,在其他任务编译之后,可以立即自动启动这个任务,例如,我们通常在项目中会有二房库的部署,我们设置,先部署二房库,然后在编译我们的应用,使得依赖于二房库的应用能够正常编译成功。

PollSCM:

这是CI系统中常见的选项。

当您选择此选项,您可以指定一个定时作业表达式来定义Hudson每隔多久检查一下您源代码仓库的变化。

如果发现变化,就执行一次构建。

例如,表达式中填写0,15,30,45****将使Hudson每隔15分钟就检查一次您源码仓库的变化。

关于这个表达式的定义可参考网址:

Buildperiodically:

此选项(也是使用定时作业表达式)仅仅通知Hudson按指定的频率对项目进行构建,而不管SCM是否有变化。

如果想在这个作业中运行一些测试用例的话,它就很有帮助。

Addbuildstep:

按一下这个按钮,添加了一项指令以执行构建脚本。

您的指令可以是下列之一:

执行 Shell

执行 Windows 批处理

使用Ant

使用Maven

如下图:

选择使用maven。

选择使用maven后,在下图中

可以填入mvn的配置文件,以及编译命令。

Publishjavadoc:

如果构建脚本能生成JavaDoc,此选项将指示Hudson发布这些内容,而且立即把它公布在当前工作的主页上。

每一个成功构建的文档内容都可以保留,但在默认情况下只保留最新的。

PublishJUnittestresultreport:

如果构建脚本执行了JUnit测试,此选项将指示Hudson处理XML测试文档并为每次连续构建产生一份可持续的报告,依据正在进行的测试汇总处理结果。

其结果是当前工作主页的一份报告,作业中的单元测试会随着时间的推移按由老至新进行陈列。

Buildotherprojects:

较之前面的选项,这个选项主要用来实现一个合乎逻辑的构建和测试过程,它会被分为两个或两个以上的物理工作,并且会按顺序执行。

当此项被选择后,您将得到一个字段,可以在其中输入您想在当前作业中后执行的其它作业名[多项作业可用逗号分隔]。

即使目前的作业得出结论说构建可能不稳定,您也可以选择这样做。

(关于“作业的稳定性”请查阅“作业状态”章节以获取更多信息)

E-mailnotification:

当您选择此选项,您可以输入一个或多个电子邮件地址[多个可用空格分隔],当Hudson完成了执行作业后,将会给它们发送通知。

事件触发时将产生一份Email,包括构建失败、构建不稳定等。

点击save按钮,保存该任务的配置。

然后在左侧菜单选择主页,在主页中右侧显示的是所有新建的job任务。

如下图:

在该列表中可以看到任务名称,上次运行成功的时间和第几次运行,比如第一行上次成功中的19min(#21)就表示19分钟前运行了第21次,并且成功。

上次失败类似。

N/A表示还没有成功或者失败运行过。

上次持续时间表示运行所花费的事件。

点击后面的图标便可以再次开始运行任务。

四、主要插件介绍

1、贸易通配置

添加安装旺旺插件到hudson平台,可以通过直接拷贝wangwang.hpi文件即可到/home/hudson/.hudson/plugins目录下,然后重启hudson即可。

2、用户访问权限配置

1)首先进入系统配置屏幕([http:

//server/hudson/configure]主页-->ManageHudson-->ConfigureSystem),并选择"Enablesecurity"。

2)选择"Hudson'sownuserdatabase"作为安全域。

注:

因为我使用的是Tomcat管理hudson,所以在TCPportforJNLPslaveagents选项中选择“Disable”。

3)选择"Matrix-basedsecurity"作为授权机制。

4)赋予anonymous用户读取权限。

5)在表格下面的文本框中输入您的用户名(稍后即创建),然后点击"add"。

6)赋予您的用户名全部的权限以便检验。

7)滚动到屏幕最下方,点击"save"。

该配置跟如下图片类似:

   至此,您将被跳回到Hudson首页,hudson也已成功安全化。

现在您需要为自己再创建一个账户。

7)点击页面右上方部分的"Login"链接。

8)选择"createanaccount"。

9)使用您在上面步骤填写过的用户名(注:

必须完全一致),并填充完其它信息。

如果一切运行顺利的话,您以现在的身份登录就可以拥有Hudson完全的权限了。

如果出现问题,请下面的方式重置安全设置。

3、hudson插件介绍:

由Hudson类库现有的Hudson功能性扩展和开发者们为Hudson提供的新功能都可以称之为Hudson插件。

有些插件可以无缝添加到您的构建过程,然而其它,诸如除CVS和Subversion的SCM插件则需要实现与源代码控制系统的支持,从而有必要使用Hudson完成您的安装。

   目前有许多可用的插件总的来说有如下类别:

SCM:

除CVS和Subversion外需要实现与源代码控制系统支持的插件。

Triggers:

事件监听并触发构建的插件。

例如,URL改变触发器将监控一个URL;当地址内容发生改变,这个触发器就将执行一次作业。

Buildtools:

实现额外构建工具的插件,如MSBuild和Rake。

如果您想在Hudson中构建非Java的软件时这些就特别有用。

Buildwrappers:

通常涉及时执行在受控制的构建过程本身之前和之后事件的插件。

例如,VMware插件将在构建之前启动一个客户虚拟机,建立和然后在构建完成后关闭它。

这在您可能需要访问VM以执行单元测试的情况下是非常有用的。

Buildnotifiers:

这些插件是做为作业事件发布通知的替代方式--通过Twitter、IRC、谷歌日历活动等等。

Slavelaunchersandcontrollers:

这是Hudson中一个非常强大的功能,本文中没有解释从机Hudson实例扮演主机Hudson实例工作。

目前在这个类别中只有一个插件:

SSH从机插件,它允许从属来管理超过一个SSH的链接。

Buildreports:

 这一系列插件主要是在用您的源代码或者构件进行一些分析的基础上创建有用的报表。

例如,Cobertura插件总是通过您的构建脚本增量统计覆盖率。

Externalsiteintegrations:

以协助Hudson整合与其他应用程序的插件,如Jira或Bugzilla。

Artifactuploaders:

以协助您把构件发布到一些网络终端的插件,如版本库或一个FTP服务器。

Pagedecorators:

为Hudson网页增加一些美化或者有用的装饰物,比如在Hudson中增加谷歌跟踪服务以跟踪其所有网页的谷歌分析插件。

Hudson插件管理器允许您安装新的插件,和更新您Hudson服务器上的插件。

管理者将连接到联机资料库,检索可用的和已更新的插件。

如果您的Hudson服务器无法直接连接到外部资源,您可以从Hudson网站上下载。

在已运行的hudson主页中,点击左侧的系统管理—>管理插件进入如下界面:

它包含四个标签:

Updates:

清单中列示了Hudson为某些插件搜索到了可用的更新。

列出的每个插件可以被选择并应用更新。

Available:

清单中列示了可用于安装(而不是目前已安装的)的所有插件。

列出的每个插件都可以被选择并安装。

Install:

 清单中列示了已经安装的插件。

Advanced:

允许您通过设定HTTP代理的方式使Hudson与在线插件库建立连接。

此外,还提供了一个上传设备,可以安装你在Hudson以外已下载的那些插件。

由上图可知,hudson缺省集成了maven2插件,并且一旦插件有新版本,会提示更新新版本插件。

如果想安装新的插件,可以点击tab分页中的Available。

如下图:

从图可知,各种hudson插件根据之前所记述的类型进行分门别类。

可勾选任意想安装的hudson插件,点击ok按钮进

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1