持续交付 devops_在持续交付的DevOps管道中使用Rational Quality Manager

本文介绍如何使用ANT API调用自动测试脚本。 此过程使维护测试,测试机器和测试历史记录更加容易。

IBM®Rational®Quality Manager是用于测试计划和管理测试结果的协作中心。 如图1所示,Rational Quality Manager是基于Jazz™平台构建的用于协作应用程序生命周期管理的Rational解决方案的一部分。 通过使用Rational Quality Manager,您可以维护自动和手动测试用例,可以实现测试用例对需求的可追溯性,并且可以管理诸如缺陷和开发计划之类的更改。 它与其他供应商的产品很好地集成在一起。 请参阅与Rational Quality Manager集成产品的完整列表。

图1.协作生命周期管理产品
CLM管理需求,质量和变更

了解持续交付的阶段

连续交付或持续集成是一种实践,在该实践中,检入代码与将产品部署到生产服务器之间的过程是自动化的。 通常,在这两个阶段之间不需要手动干预。 在大多数情况下,编码和部署之间存在多个阶段,如图2所示。

  • 开发人员将代码传递到称为主分支或集成分支的分支。 良好的做法是一次交付功能代码(产品中包含的代码)和测试该新代码所需的自动化测试。
  • 代码被检入到源代码控制分支或树中,并触发构建。 此构建按固定的时间表执行,或者在检测到文件更改后开始构建。
  • 如果构建成功,则此构建的输出将安装在登台服务器上,而不是生产服务器上。 此登台服务器现在正在运行开发人员已交付的更改集。
  • 在此登台服务器上运行一组测试,以确保开发人员的代码未降级任何功能,并且对新功能的新测试运行良好。 这是第一道高质量的大门。
  • 如果所有测试均已通过(累积判断得出“通过”或“不通过”决定),则将变更集提升为生产分支或稳定分支。 这是在生产环境中运行的源代码。
  • 在稳定分支上触发构建,并将构建输出部署在生产服务器上。 有时,在生产服务器上运行一组简单的冒烟测试,以确保包含开发人员所做更改的新版本运行良好。 这是第二道质量门。
图2.一个简单的交付管道
整合分公司,稳定分公司,生产

添加质量门

通常,软件开发团队拥有完善的构建系统。 系统的范围从手动构建流程的ANT和Perl脚本到更复杂的商业DevOps产品。 无论使用哪种系统,都可以引入质量门。 本文针对的是更常见的情况,即团队拥有一个构建和部署工具,该工具提供了ANT,Rake,Jython,纯Java™代码或Maven或Hudson等其他工具的程序化挂钩。

创建自动化脚本

尽管自动化脚本严格来说不是添加质量门的过程的一部分,但这是确保质量的关键方面。 在大多数情况下,您已经为开发人员在其开发环境中运行脚本编写了测试,以进行功能验证。 您的测试通常是在测试创作平台中使用Serinium,Java JUnit,Rational Functional Tester,HP QTP或其他工具之类的测试实践者脚本编写的。 每个测试单元必须足够细化,以提供对特定故障的有用验证。 避免进行范围广泛的测试,以免故障使大部分产品功能受到怀疑。 避免过于狭窄的测试,以致于编写有意义的测试方案变得很麻烦。 本文使用Java JUnit测试脚本的示例进行说明。 但是,它可以扩展到其他测试脚本类型。

定义测试脚本

编写脚本后,开始将其连接到Rational Quality Manager,以便Rational Quality Manager可以运行它。 Rational Quality Manager使用脚本类型的概念。 每种脚本类型都对应一个称为测试适配器的执行组件。 在图3的示例中,脚本类型是JUnit或Selenium脚本,用于指向Selenium Web驱动程序测试和JUnit测试。 在连续交付管道中,测试脚本JAR文件已安装到测试计算机。 下一节将介绍如何设置适配器。

图3.创建Rational Quality Manager测试脚本
创建测试脚本

定义一个测试案例

如图4所示,您需要将Rational Quality Manager测试脚本添加到Rational Quality Manager测试用例。 该测试用例是Rational Quality Manager中的一个基本的可执行实体。 测试执行的结果将参考测试用例进行维护。 它们称为测试用例执行结果 。 保持测试用例与测试脚本之间的一对一关系,并为其分配相同的名称是一种好习惯。 您可以在运行时指定适配器。 您可以使用类别对测试用例进行分组。 如果您想稍后为特定产品,组件或您选择的任何其他形式的分组生成报告,则类别很有用。

图4.创建一个Rational Quality Manager测试用例
将测试脚本添加到测试用例

创建测试套件

如图5所示,Rational Quality Manager中的测试套件提供了一种聚合一组测试用例的方法。 使用测试套件,您可以管理要为给定类型的质量门运行的自动化测试脚本集。 例如,测试套件“ Build Verification Tests”可能是测试脚本的集合,以快速确定应用程序的绿色线程是否中断。 如果您的应用程序具有用户界面,则测试套件可能包含行使主要UI功能的一组UI自动化测试。 在将构建升级到下一阶段之前,您可能希望在构建上运行此测试套件。 接下来,您可能会拥有另一系列的测试套件,这些套件将更详细地测试每个主要功能。 例如,一组API测试可能会测试基础REST接口。 您添加了要在运行测试套件时运行的所有测试用例。

图5.测试套件
将测试用例添加到测试套件

创建测试套件执行记录(TSER)

对于已创建的测试套件,创建一个TSER,如图6所示。通常,您有一个测试计划。 将测试套件添加到测试计划中。 每个测试计划创建一个TSER。

图6.创建测试套件执行记录
ID记录清单

安装和部署

通常,此步骤是连续交付工具的一部分。 您可以使用IBM®uDeploy®,定制构建脚本或诸如Chef之类的工具,它们在成功构建源代码之后安装构建。 在此阶段,必须将应用程序和测试资产(例如所有Junit类和必需的JAR)安装到目标计算机上的众所周知的位置。 在以后的步骤中,此位置用于定义Rational Quality Manager测试脚本。 如果您使用的是诸如IBM®Rational®Functional Tester之类的自动化测试脚本,那么您还可以使用Rational Functional Tester适配器支持的共享位置选项来将测试资产交付给目标机器。

Rational Quality Manager适配器

Rational Quality Manager有一个称为适配器的组件,它是一个远程组件,通常安装在测试机器上。 该适配器与Rational Quality Manager服务器通信,并调用Rational Quality Manager指示其运行的测试脚本。 然后将测试结果传递回Rational Quality Manager。

安装合适的适配器

在此安装阶段,您还将安装Rational Quality Manager适配器。 如果您正在编写JUnit / Selenium,请安装Selenium JUnit适配器;否则,请执行下列步骤。 如果您正在编写Rational Functional Tester,请安装Rational Functional Tester适配器。 当您配置适配器并且必须指定适配器名称时,请使用运行适配器的计算机的标准域名。 通过这种做法,可以轻松确定在运行测试用例和测试套件时要使用哪个适配器。 有关更多详细信息,请参阅有关运行自动化测试和测试适配器的文档。

使用Rational Quality Manager ANT API调用测试

您的主要工具可能是ANT脚本。 Rational Quality Manager提供了一个基于ANT的API,称为Rational Quality Manager执行工具,以调用测试用例执行记录和测试套件执行记录的运行。 从与特定质量门相关联的build.xml文件中调用Rational Quality Manager执行工具。 使用的TSER ID作为属性保留在关联的属性文件中。 例如,清单1中的代码调用了Rational Quality Manager集成测试。

清单1.调用Rational Quality Manager集成测试
<executeTestSuiteExecRecord
   userId="${rqmUser}"
   passwordFile="${root}/${rqmPasswordFile}"
   rqmServerUrl="${rqmServerUri}"
   projectName="${rqmProjectName}"
   testSuiteExecRecordId="${rqmTestSuiteERId}"
   suiteStepAdapterIds="${testClientServer}"
   arguments="-passVariables=true -exitOnComplete=true 
-variables=com.ibm.rqm.oslc.test.serverHost:${deployedServer},server:$
{deployedServer},buildLabel:${buildLabel}" />

您可以使用-variables选项将任何配置或执行信息传递给测试。 了解有关执行工具和参数的更多信息。

使用结果移至循环的下一步

执行完成后,Rational Quality Manager执行工具ANT任务将设置两个属性以反映执行状态以及指向执行结果的链接。 它们分别是rqmExec:verdictrqmExec:result_url 。 您可以将日志文件和测试结果添加到构建记录中。 如果您正在使用IBM®Rational Team Concert™,那么可以执行以下任务:

  • 使用Rational Team Concert ANT taskdef logPublisher将Rational Team Concert构建结果的状态设置为Rational Quality Manager执行的状态。
  • 使用Rational Team Concert ANT taskdef linkPublisher在Rational Team Concert构建结果中添加指向Rational Quality Manager执行记录的linkPublisher

阅读有关这些Ant任务的更多信息。 清单2显示了将结果和结果URL写入日志文件的示例代码。

清单2.将结果写入日志文件
<echo file="${root}/QMIntegrationTestsLog.txt" >
   Verdict: ${rqmExec:verdict}
   Execution Result: ${rqmExec:result_url}
</echo>

清单3显示了基于执行状态设置属性的示例代码。

清单3.根据执行状态设置属性
<condition property="QMExecStatus" value="OK" else="ERROR">
   <equals arg1="${rqmExec:verdict}"
   arg2="com.ibm.rqm.execution.common.state.passed"/>
</condition>

清单4显示了如何将日志文件附加到构建记录。

清单4.将日志文件附加到构建记录
<logPublisher 
   repositoryAddress="${repositoryAddress}" 
   userId="${jazzUserId}" passwordFile="${jazzPasswordFile}"
   buildResultUUID="${buildResultUUID}" 
   filePath="${root}/QMIntegrationTestsLog.txt" 
   label="QM Integration Test Log" 
   status="${QMExecStatus}" 
/>

清单5显示了如何将测试结果链接附加到构建记录。

清单5.将结果附加到构建记录
<linkPublisher 
   repositoryAddress="${repositoryAddress}" 
   userId="${jazzUserId}" 
   passwordFile="${jazzPasswordFile}" 
   buildResultUUID="${buildResultUUID}" 
   url="${rqmExec:result_url}" 
   label="Rational Quality Manager Execution Result" 
   componentName="Rational Quality Manager Execution Result"
/>

分析结果

测试周期开始后,对于特定的构建,你可以深入到从测试套件结果和看看效果测试用例结果 ,如图7(在测试套件结果的链接添加到构建使用linkPublisher 。)您linkPublisher获得结果的图形表示。

图7.测试用例结果详细信息
条形图显示测试通过和失败

积累足够的结果后,您可以通过挖掘结果数据来获得更多的情报。 此功能仅在质量管理工具(例如Rational Quality Manager)中可用。 (没有它,则结果文件仅位于文件系统上。)例如,使用质量管理工具,您可以按类别查看执行状态,如图8所示。类别在“测试用例定义”部分中进行了介绍。

图8.按类别的结果分析
条形图按类别显示状态

结论

Rational Quality Manager提供了一种非常结构化且简单的方法来管理需要在DevOps的连续交付管道中运行的测试。 您可以逐步使用它来构建功能完善的DevOps产品,而无需进行任何返工。 测试用例管理和测试结果分析是您在构建工具中连接测试脚本时获得的两个非常强大的优势。


翻译自: https://www.ibm.com/developerworks/library/d-quality-manager-continuous-delivery/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值