rational rosa_将Rational Quality Manager与Slack和Jenkins集成

最近,我的团队需要更新我们的Rational Quality Manager测试自动化框架,以对基于云的产品进行回归测试 。 我们还希望将几种新技术集成到我们的测试自动化工作流程中:Git用于源代码控制,Jenkins用于构建/部署,以及Slack用于团队沟通和协作。 在本文中,我将向您展示如何构建定制的测试启动器,以将Rational Quality Manager与Slack,Jenkins和我们的内部测试框架集成在一起。 您还将学到一些有关Rational Quality Manager自动化测试,Rational Quality Manager执行工具,Node.js,Slack Webhooks和Elasticsearch的知识。 最重要的是,您将获得有关使用这些技术或其他技术来增强您的工作流程的自定义Rational Quality Manager的提示。

你需要什么

本教程假定您在开发环境或测试机中安装并设置了以下技术:

熟悉基本的Rational Quality Manager术语和使用RQM命令行适配器的测试自动化将帮助您充分利用本教程。 测试启动器是使用Node.js构建的,并使用JavaScript编写。 您可以将此处讨论的技术应用于其他技术和编程语言。

请注意,您将需要拥有一个注册的Jazz.net帐户,才能遵循本教程中的示例。

为什么要定制Rational Quality Manager?

对于软件开发人员而言,通常会使用多种技术来管理软件开发生命周期。 我的团队使用Rational Quality Manager进行质量管理,并使用Rational Team Concert的某些组件进行项目管理。 作为一个良好的基础,这很好,但是最近添加了新的要求,使我们不得不开箱即用。

随着我们团队的成长,我们希望新的团队成员能够轻松地执行SVT回归而无需学习Rational Quality Manager。 为了鼓励跨团队参与,尤其是在失败的测试中,我们需要回归测试的结果对更广泛的团队可见。 而且我们需要回归存储桶快速运行,以便它在一天内可以运行多次。 我们已经在使用Git进行源代码控制,并使用Jenkins进行项目构建。 我们的开发团队还开始使用Slack进行团队沟通和协作。 我们需要找到一种将所有这些技术结合在一起的方法。

我们的回归桶包含大约20个Node.js测试应用程序。 我们能够使用Rational Quality Manager的命令行适配器(CLA)轻松地运行我们的测试。 使用CLA,可以从命令行运行的任何测试工具都可以与Rational Quality Manager集成。 为了创建回归桶,我们使用了Rational Quality Manager测试套件,选择并行套件执行的选项来帮助加速回归。 从Rational Quality Manager 5.0开始,可以使用单个CLA实例并行运行多个自动化测试。 通过这些Rational Quality Manager功能,我们能够在5分钟内使用两个CLA实例运行整个回归桶。

构建测试启动器

为了将我们的回归桶与Jenkins和Slack集成在一起,我们编写了一个简单的Node.js应用程序来启动回归套件。 启动器应用程序公开URL端点,以执行回归,获取测试结果并将结果发布到Slack。 您可以在下面获取我们的测试启动器应用程序的源。

启动器应用程序依赖于Elasticsearch ,我们在其中一台测试机上与它一起运行。 Elasticsearch使我们能够轻松地以编程方式访问测试结果。 尽管Rational Quality Manager提供了URL实用程序以编程方式访问测试结果,但是与通过Elasticsearch访问结果相比,我们发现此实用程序繁琐。

最好的学习方法就是这样做,因此本教程的其余部分将逐步指导您设置集成的回归测试框架,然后通过自定义测试启动器运行测试。

步骤1.设置Elasticsearch

  • 下载并解压缩Elasticsearch。
  • 修改配置文件elasticsearch/config/elasticsearch.yml ,如下所示:
    • 查找以以下开头的行: # network.host:
    • 要启用此设置,请在行的开头删除主题标签,然后将IP地址修改为运行Elasticsearch的计算机的主机名。 这将使其他计算机上的应用程序能够访问Elasticsearch。
  • 通过Unix上的elasticsearch/bin/elasticsearch.bat或Windows上的elasticsearch/bin/elasticsearch启动Elasticsearch。
  • 确认您可以使用以下URL在浏览器中访问Elasticsearch:http://network.host:9200。 确保用配置的主机名替换“ network.host”。 这应该返回一个JSON对象,其中显示有关您的Elasticsearch实例的信息。
  • 创建一个存储库以存储您的测试结果。 Elasticsearch将此称为索引。 您可以将其视为用于存储JSON对象的数据库。 发出以下命令来创建名为test_results的索引:
    $ curl -X PUT -d '' http://network.hosts:9200/test_results

    如果您使用的是Windows,但是curl不可用,则可以通过针对Chrome浏览器的Postman扩展程序轻松发出HTTP请求。
  • 告诉Elasticsearch您将要存储的测试结果文档。 为此,请下载启动器应用程序中包含的TestResult映射文件 。 您将需要映射来设置测试结果的到期时间并指定关键属性的搜索行为。 使用curlPOST下载TestResult.map到Elasticsearch:
    $ curl -i -X POST http://network.hosts:9200/test_results/TestResult/_mapping --data @TestResult.map

    如果您使用的是Postman,只需将TestResult.map文件的内容用作POST请求的主体。

您的Elasticsearch设置现已完成!

步骤2.设置Slack和Rational Quality Manager

对于本节中的示例,我假设您有权访问Rational Quality Manager服务器和有效的Slack帐户。 为了将Slack与Rational Quality Manager一起使用,您需要创建一个传入的Webhook。 Webhook本质上是您发布到的URL,并且发布的数据显示在与该Webhook关联的Slack通道中。 如果您是Slack项目的管理员,则可以使用此页面创建Webhook。 否则,您需要请管理员为您的Slack频道设置一个Webhook。 有了Webhook之后,就可以将自动测试结果发布到Slack。

最终,您将要使用自己的自动化测试,但是对于本练习,我提供了一个示例测试实现,您可以使用该示例实现将测试结果插入到Elasticsearch中。 我们稍后将仔细研究样本测试。 现在,只需下载rqm-test-launcher Git项目运行您的Rational Quality Manager中CLA的测试机,然后去rqm-test-launcher目录,并修改样本测试文件命名为test-stub.js 。 查找变量ESEARCH_URL并修改服务器名称以匹配运行Elasticsearch的计算机的主机名。 然后,从包含test-stub.js的目录运行npm install 。 这将下载用于示例测试的Node.js库。

创建Rational Quality Manager测试脚本,案例和套件

接下来,您将在Rational Quality Manager UI中创建一个新的测试脚本。

  • 打开Rational Quality Manager UI。 在“ 构造菜单”下 ,选择链接以创建新的测试脚本。 将脚本命名为“脚本示例1”。
  • 在设置页面中,选择命令行类型。 在“命令”字段中,输入node并提供test-stub.js的路径。 设置页面将如下所示:
    图1. Rational Quality Manager测试脚本的安装页面
  • 在“ 执行变量”选项卡上,单击复选框以启用类型为“工件变量”的内置变量。 创建第二个名为“ Script Example 2”的测试脚本,并输入与第一个脚本相同的选项。
  • 现在创建两个Rational Quality Manager测试用例,每个测试脚本一个。 然后创建一个包含两个测试用例的测试套件,并指定该套件应并行运行这些测试用例。 测试套件的设置页面将如下所示:
    图2. Rational Quality Manager测试套件的安装页面
  • 单击上一页左导航栏中的“ 测试套件执行记录” (TSER)。 在TSER表上方,单击Generate New Test Suite Execution Record 。 在下面的对话框中,您可以通过单击NextFinish接受默认值。 关闭“生成TSER”对话框后,保存测试套件,并确保注意列出测试套件执行记录的表格中显示的ID值。 您需要一点此ID。

步骤3.设置并运行测试启动器

我们终于准备好使用启动器应用程序了! 在运行测试启动器之前,您应该知道它的作用:

  • 提供URL端点,用于通过Rational Quality Manager执行工具启动Rational Quality Manager测试套件。
  • 实现任务队列,以便在任何给定时间仅运行套件的单个实例。 借助易于启动的测试,您会发现更多的团队成员开始测试。 实施队列有助于控制对运行测试适配器的Rational Quality Manager测试机的需求。
  • 测试完成后,将Rational Quality Manager执行工具的退出代码映射到有意义的状态消息。
  • 针对每个单独的测试查询存储在Elasticsearch中的结果,并将有意义的结果发布到Slack。
  • 提供一个URL端点,用于查询测试套件运行的状态。 这是将启动器与其他工具集成的关键,这些工具需要知道它们启动的测试套件何时完成。

在运行启动器之前,请打开launcher.js并修改文件顶部定义的常量以指向您的环境。 其中包括您的Elasticsearch服务器名称,Slack Webhook和Rational Quality Manager信息,包括步骤2中的TSER ID。

您可以在安装了Node.js v0.12.7(或更高版本)和Java 8(或更高版本)的任何计算机上运行启动器。 开始:

  • 在“ Rational Quality Manager下载”页面的“ 所有下载”选项卡上找到Rational Quality Manager执行工具。 下载该工具并将其解压缩到rqm-test-launcher项目目录中的rqm_execution_tool文件夹中。 (请注意,您需要注册并登录jazz.net才能完成此步骤。)
  • rqm-test-launcher目录中,运行npm install以下载所需的依赖项。
  • 运行node launcher.js以启动测试启动器。

感谢快速的Node.js库,测试启动器包含了一个可以处理HTTP请求的Web服务器。 使用/run端点来触发Rational Quality Manager测试套件:

图3.启动Rational Quality Manager测试套件

这里的说明是使用curl ,但是您可以使用任何可以访问Web URL的框架。 curl与Jenkins脚本执行构建步骤配合得很好。 我的团队安排了詹金斯(Jenkins)项目,该项目将在构建/部署完成后启动我们的早晨回归测试。

测试启动器端点

启动器应用程序包含两个有用的端点: run/ (您在上面使用过)和/task ,它为您提供了已启动测试的状态。 上面请注意,对/run的响应包含一个runId 。 这用于获取您开始运行的状态,如下所示:

图4.执行状态

最初, exitStatus属性将设置为“待处理”,以指示运行尚未完成。 一旦完成, exitStatus将是一个有意义的字符串。 summary属性将显示通过和失败的测试数量; 并且resultUrl将包含指向Rational Quality Manager Web UI中的相关测试套件结果的链接。 /run/task端点使将Rational Quality Manager测试套件执行集成到其他框架中变得很简单。 它们还使测试套件的使用者免受Rational Quality Manager的特质的影响。

查询结果并将结果发布到Slack

测试启动器使用Node.js超级代理库向您的Elasticsearch服务器发出查询请求,以检索与runId相关联的所有单个测试脚本结果。 然后,它将信息性消息发布到您的Slack Webhook。 这是来自测试启动器的消息应在您的Slack频道中显示的方式:

图5.基本的松弛消息

请注意,Rational Quality Manager测试脚本需要将测试结果上传到Elasticsearch。 在test-stub.js您会看到这是通过对Elasticsearch的POST请求完成的。 该请求的主体是一个JSON文档,该文档将存储在Elasticsearch中。 该文档包含您的runId ,它通过Rational Quality Manager执行变量从测试启动器传递到测试脚本。 该文档还包含测试案例名称和测试案例结论。

为了演示起见,我简化了启动器,测试脚本存根和存储在Elasticsearch中的文档。 您可以扩展示例以在Elasticsearch中存储更多数据,并在Slack中提供更多信息。 我的团队实际上将项目的整个测试输出以JSON格式存储在Elasticsearch中。 Slack中的链接指向我们的测试启动器,该启动器能够以HTML或JSON格式提供我们的测试套件结果。 我们还增强了Slack消息,以指示每个测试脚本的结论。 我们甚至混合了一点乐趣,根据整体测试结果显示了不同的表情符号!

图6.增强的Slack消息

这些增强功能对我们的团队非常有帮助,因为它们立即引起了每个回归测试状态的注意。 使用Rational Quality Manager,您必须先单击许多页面和选项卡才能看到详细的测试结果,而在Slack中,只需单击一下即可获得详细的测试输出。

结论

与Jenkins,Elasticsearch和Slack一起构建集成的Rational Quality Manager测试启动器对于我们的团队非常有效。 HTTP端点使我们的测试启动器非常易于使用,并且Slack接口提高了测试结果的可见性和易用性。 因此,开发人员和devop团队成员每天都使用我们的回归分析,而无需任何Rational Quality Manager知识。 希望您会发现这种方法也对您的项目有用。


翻译自: https://www.ibm.com/developerworks/rational/library/integrate-rational-quality-manager-slack-jenkins-trs/index.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值