当前位置: 首页 > Linux学院 > 程序设计 > 软件工程 > 什么是 Jazz 平台,如何提高 Jazz 构建项目的质量

什么是 Jazz 平台,如何提高 Jazz 构建项目的质量

2014-08-01 09:13 来源:IBM 作者:王庆武 人气指数: 我要评论

Jazz 是 IBM Rational 面向软件交付的以及团队合作的协作平台。可以提高项目的交付效率,增强团队间的协作能力,并且可以及时的反应出项目的管理进度等特点。在 Jazz 平台中,Jazz Build Engine(简称 JBE)可以灵活地完成一个项目构建,是整个项目构建过程的核心。

Jenkins 介绍

Jenkins 是一个基于 Java 开发的持续集成的应用工具,用来执行重复的工作,例如定期的构建一个产品或者运行一项任务等。

目前 Jenkins 主要集中在两项任务:

  • 持续的构建及测试任务。
  • 监控外部执行的任务。

Jenkins 有诸多特点,下面结合本文对其中几个做一介绍:

  • 安装简单:这个特点也使得 Jenkins 得以快速发展的首要条件。总所周知,以前很多的框架虽然功能强大,但前期安装部署确实让人头疼。然而对于 Jenkins 来说,我们只需要下载一个 WAR 包,部署到一个 Servlet Container 中(如,Tomcat)就可以完成安装了。
  • 配置容易:当我们在 Jenkins 中定义好一个任务后,我们可以通过任务配置页面去填写定制的功能。比如:代码源、触发的脚本,服务器的 IP 等等。
  • 邮件等的集成: 当我们的任务执行完毕后,如果任务失败,我们可以让 Jenkins 发送一个邮件到我们指定的邮箱里。
  • JUnit 测试结果报表:当自动化测试结束后,生成一个 JUnit 格式的 xml,这个 xml 结果被 Jenkins 捕捉到并展示在页面上。可以清晰的让测试人员看到每个用例的执行情况和整个任务执行状态的走势图。
  • 对插件的支持:因为当我们启动一个 Jenkins 的时候,并不是所有的功能都是被开启的,所以我们要在具体的使用环境中根据需要开启某些第三方的插件功能。比如在本文中要用的 URL Trigger 功能,就是一个第三方插件,需要手动启用。

Jenkins 对 JBE 的意义

Jenkins 使得自动化测试和产品构建变得更加灵活和直观,并且不受任何环境限制我们就可以以报表的形式查看到每项任务详细的执行结果。所以,把 Jenkins 融入到 JBE 中,不仅可以继承原有的 Jazz 项目构建架构,而且还可以把 BVT (Build Verification Test) 的流程添加到项目构建中,既提高了产品的质量,又可以把每次构建的结果以报表的形式清晰的展现在画面上,更加易于项目构建团队交付高质量的产品。

项目构建架构

图 0.项目构建架构

什么是 Jazz 平台,如何提高 Jazz 构建项目的质量

下面对 Jenkins+JBE 的构建架构做一介绍。

此架构主要分为两块内容:Jazz 平台的项目构建部分和 Jenkins 自动化部分。

首先介绍一下 Jazz 部分。在 Jazz 平台中,项目构建通过 JBE(Jazz Build Engine)来完成,生成一个打包文件,例如,rpm、exe 等。并发布到一个 Pre-Release 服务器的地方以备 Jenkins 自动化测试使用。然后,利用 Jenkins 来对发布前的产品做最后的 BVT(Build Verification Test),以保证一个产品的构建能够通过基本功能的测试,从而提升发布出去产品的质量,并提高客户的满意度。

  • JBE 是 Jazz 平台里构建项目的核心,我们可以通过 Build Definition 制定一个计划任务,定期或者根据 Repository Workspace(存储库)中的代码变动来触发一个项目构建请求。
  • Repository Workspace(存储库)用于存放项目开发中的代码。
  • Pre-Release 是一个文件服务器,主要就是用来存放产品各个版本发布前的构建。为下一步 BVT 做准备。
  • Master Server 是 Jenkins 用于调度各个 Job 的控制中心。通过 URL Trigger 这个插件来监听 JBE 的执行结果。当一个 Build 请求在 Jazz 平台成功结束后,会触发 Master Server 去启动相应的 BVT 任务,并在 Slave 节点上运行脚本去执行 BVT。最后把 BVT 的执行结果显示在 Jenkins 的页面上,可以清楚的查看到这个任务的执行历史、测试结果、走势等信息。
  • Slave Server 是具体执行各个 Jenkins Job 的节点。Jenkins 会在 Slave Server 上生成执行脚本,对 BVT 来说整个脚本调用也是发生在这台机器上的。
  • BVT Server 是用来做 BVT 的测试机,在这上面需要安装运行 BVT 的测试环境。BVT 的测试用例通常都是一些基本的功能,不用太过于细致,因为到此一个项目已经经过了 UT、FVT、IVT 等测试流程,所以在此我们只要能保证一个构建出来的产品能够正常的安装、保证基本功能的运行就可以。至于具体用例的定义,因项目而异。最后,Slave 节点会取得测试结果并发送给 Master Server。
  • Git Server 是用来存放 Build team 在进行 Jenkins 自动化测试、环境部署等流程的一些代码。
  • Release Server 是对外开放的一个文件服务器。在这里 Build team 发布了经过 BVT 测试的产品。各个 team 可以在此取得不同的产品版本。

在整个架构中有两个 Repository,一个是用来作为项目的代码管理,即用于项目管理。第二个 Repository 就是用于 Jenkins 脚本的管理。这两个 Repository 也可以合并到一起,但是对于公司来说,由于产品不同,往往有多个 Repository,通常以项目或部门而异。一般 Build team 会有一个单独的 Repository 存放代码,以防影响到其他项目的管理。

对于 Jenkins 而言,也有自身的架构解决方案。有 Master 和 Slave 的两个概念,这样就可以很好的分担 Master 机器的工作量和运行压力,以防 Master Server 宕机而影响到其他产品构建的正常运行。Jenkins 的灵活性和兼容性,可以调用多种脚本语言。当一个构建请求被触发,JBE 会从 Repository Workspace 上抓取代码,下载到本地,然后通过 Command 属性来运行具体的构建脚本或者命令。当所有的编译、测试等都通过后,最终一个产品就正式地发布给用户使用。

实际案例

下面通过一个项目作为示例来加深对此框架的理解。

首先,对 Jazz 的 Build 做一个简单介绍,这里只说明需要注意的几个点,对于 JBE 的详细描述可以参考 Jazz 社区的专题介绍。下面我们定义一个 Build(如图 1),在这个 Build 的定义画面里我们可以填写和配置 JBE 构建时要用的属性和参数。在这里主要强调几个地方,Build 的 ID 要唯一,不可以有重复。

图 1.新建一个 Build 定义
什么是 Jazz 平台,如何提高 Jazz 构建项目的质量

在 properties 选项卡里定义了所有在 Build 时候要用到的参数,比如:Build 的路径,版本号等。在这次的示例中,我们选用的是 Command Line 的方式做 Build,所以在 Command Line 选项卡里要定义 Command 属性,这个属性名字要与 properties 里定义的参数名字一致。参见图 2 和图 3

图 2.Build 定义-属性选项卡
什么是 Jazz 平台,如何提高 Jazz 构建项目的质量

图 3.Build 定义-命令行选项卡
什么是 Jazz 平台,如何提高 Jazz 构建项目的质量

在 Overview 选项卡中添加 Build Engine 的 Id。这里添加了两个 Engine 的 Id。意思是在 Server 6 和 Server 9 上选择一台相对空闲的机器做 Build,这个 Build Server 的选择由 JBE 来执行。

图 4.Build 定义-添加 Build Engine
什么是 Jazz 平台,如何提高 Jazz 构建项目的质量

最后,在 Build 定义好之后,我们就可以触发一个 Request Build 了,如图 5。JBE 的框架会在 Build Engine 上运行我们定义好的脚本。比如,在服务器 6 上运行了一个 test.pl 的脚本去构建 myBuild 这个产品。

图 5.Build 定义-添加 Build Engine
什么是 Jazz 平台,如何提高 Jazz 构建项目的质量

当 Build 结束后,我们可以通过 Show Build Results 来查看 Build 的执行结果,如图 6 所示。

图 6.Build 结果
什么是 Jazz 平台,如何提高 Jazz 构建项目的质量

把 Build 的结果上传到 Pre-Release Server 的过程是在 test.pl 脚本里实现的。所以,对于一个自动化的构建而言,定义一个通用的脚本用于不同的产品是至关重要的。至此,Jazz 平台的 Build 的任务就结束了。下一步就要在 Jenkins 里定义我们要的 BVT 相关的 Job 了。

在 Jenkins 里,首先在 Jenkins->Plugin Manager 中确认下 URL Trigger 插件是否安装,如图 7 所示。如果没有安装需要手动安装。

图 7.URL Trigger 插件
什么是 Jazz 平台,如何提高 Jazz 构建项目的质量

其次,要创建一个 Job 用来执行我们的 BVT 并把通过测试的产品放到 Release Server 上。如图 8,展示了 Job 的配置页面。在 This build is parameterized 选项中添加要传递给脚本的参数。在这里我们定义了 slave,pre_release_server,build_server,bvt_server 等参数信息。

图 8.Jenkins Job 配置
什么是 Jazz 平台,如何提高 Jazz 构建项目的质量

如图 9 所示,添加 Build Triggers 参数,把我们在 JBE 定义好的 Pre-Release 路径填写在这里,并且设置 Schedule 参数值。当 JBE 有新的 Build 生成的时候,就会触发 Jenkins 的这个 Job 去执行 BVT 的相关脚本。

图 9.URL Trigger 定义
什么是 Jazz 平台,如何提高 Jazz 构建项目的质量

如图 10 所示,定义了 Job 触发时的执行脚本,这里用的是 Shell 语言。执行 run-bvt.sh 脚本。在 run-bvt.sh 脚本里,定义了 Build 脚本的下载,产品的下载安装,部署 BVT 环境,执行测试用例,上传日志和测试结果到 Master 和 Slaver Server,并把通过测试的产品上传到 Release 服务器上。

图 10.启动脚本定义
什么是 Jazz 平台,如何提高 Jazz 构建项目的质量

因为这是一个 Python 的项目,所以在运行测试用例时选用的是 nosetests 工具,这个工具在执行完测试脚本后会生成一个符合 JUnit 格式的 XML 测试结果文件。最后,把这个 XML 上传到 Slave Server 后,此次的测试结果就可以在页面上展示出来。如图 11 所示,每个测试用例的测试结果和运行时间。

图 11.测试结果
什么是 Jazz 平台,如何提高 Jazz 构建项目的质量

图 12 展示了这个 Job 的测试结果趋势图。

图 12.测试趋势
什么是 Jazz 平台,如何提高 Jazz 构建项目的质量

到此,整个案例的介绍就结束了,以后再有产品代码的改动时,JBE 会启动一个 Build 的事件,然后由 Jenkins 把测试的结果以页面的形式直观的展现出来。

总结

如今的项目开发已经趋向于团队化,更多的关注于项目的整体协作性,从开发到测试直至最后的项目构建,都会影响到一个产品的质量。项目构建作为最后一个环节,通过 Jenkins 添加了 BVT 的自动化测试任务,可以大大的提高整个产品的质量。同时也会减少很多可能会在用户环境上遇到的问题,从而提高用户的满意度。

为您推荐: 平台 Jazz构建项目 Jazz
大家感兴趣的内容
小伙伴最爱的新闻
小伙伴还关注了以下信息
小伙伴关注的焦点

小伙伴都在关注的热门词

新服 缤纷活动 航海世纪 芈月传 暗黑道具 萌乐网 苹果发布会 最新谍照 三国令 剑雨江湖 怎样修炼战骑 页游 怎样修炼伙伴 木甲世界 仙侠道2 推黑科技 页游模式 武圣试炼场 街机玩法 蓝月传奇 个人BOSS玩法 哥们网 九阴绝学 仗剑出鞘 全新模式 范伟打天下 全新元神玩法 七大神兵简介 新手攻略 跑腿任务 门派五行 城战礼包 页游界 泥石流 傅园慧 经典网页游戏 耐玩 盘点 玉石攻略 提升角色 大黑 实装属性 神兵攻略 问鼎莽荒 莽荒纪 手持神兵 土豪梦 万世 开学清单 财富赚不停 天书世界 大黑游戏 资源战场 ppwan 天问 激战 全国大战 雄霸一方 新增宠物技能 绝对小能手 花千骨 三尾章鱼 风色轨迹 双枪手 弑之神 缤纷好礼 惊喜六重连 帮会 中秋福利 自制月饼 九阴真经 玩家 五周年纪念 纪念银币 名动三界 新服资料片 画江山 勇战妖魔 邪恶势力 上古降魔 老司机玩法 坐骑揭秘 黑科技 竞技场攻略 铁血皇城 披风玩法 书剑恩仇录 装备强化攻略 野外BOSS玩法 全网曝光 赤壁传说 半回合制国 ACT 奇珍商城 热血战歌 传奇宝藏抽奖 打开方式 门徒 门徒获取玩法 三大萌宠简介