简介

IBM® WebSphere® Message Broker(以下简称为 Message Broker)支持业务应用程序之间的消息转换和路由,并且包括了一个工具箱,用于业务流开发和部署。

IBM® Rational® Functional Tester(以下简称为 Functional Tester)是一个测试工具,可以帮助您自动化功能、回归、GUI,以及数据驱动测试。本文将展示如何使用 Functional Tester 自动化 Message Broker Toolkit 操作,并将涵盖以下各个主题:

  • 针对 Functional Tester Eclipse IDE 配置基于 Eclipse 的 Message Broker Toolkit
  • 演示如何自动化 Message Broker Toolkit 操作的样例脚本
  • 故障排除

您可以使用 Functional Tester 自动化任何 Message Broker Toolkit IDE 操作。作为一个例子,本文将告诉您如何自动导入和部署 Message Broker Toolkit 提供的 Message Broker 样例。

自动化手动测试的益处

在手动测试中,往往需要重复执行相同的测试用例,这个过程容易出错并且繁琐而又费时。使用 Message Broker Toolkit 实现自动化测试可避免这些问题。该工具包允许您创建消息流并将其部署到 Message Broker 运行时。大型组织可能会开发和部署数以千计的业务消息流,根据不断变化的需求,所涉及的业务规则可能需要变动。您可能需要测试所有的业务流程,以防止回归 错误,例如,当您升级到一个新版本的 Message Broker,或新的业务需求要求强制修改消息流或其组件或参数时。

先决条件

为了从本文中获益,您应该具备一定的 Java™ 编码经验,并且应该已经安装以下内容:

  • Rational Functional Tester V8.1 或更高版本,操作系统为 Microsoft® Windows® 或 Linux®。
  • WebSphere Message Broker V7 和 Message Broker Toolkit V7

配置

使用 Message Broker Toolkit 创建一个默认配置:

  1. 单击 Help 并选择 Welcome
  2. 单击 Get Started
  3. 单击 Default Configuration
  4. 在 Creating the Default Configuration 页面上,单击 Start the Default Configuration Wizard 并遵循 Wizard 中的步骤。

配置 Functional Tester:

  1. 启动 Functional Tester (Eclipse IDE) 并选择工作空间,如果还没有配置默认工作空间的话。然后单击 Configure
  2. 选择 Enable Environments
  3. 单击 Web Browsers 选项卡。对于 Windows 操作系统,默认添加了 Internet Explorer。如果使用的是 Linux,则需安装 Mozilla Firefox V3.0.4(使用较高版本可能会遇到兼容性问题)。
  4. /usr/lib/firefox-3.0.4/plugins/ 中创建 libjavaplugin_oji.so 作为软链接,指向文件
    /opt/IBM/SDP/jdk/jre/plugin/i386/ns7/libjavaplugin_oji.so
    >cd /usr/lib/firefox-3.0.4/plugins/ >ln -s /opt/IBM/SDP/jdk/jre/plugin/i386/ns7/libjavaplugin_oji.so  libjavaplugin_oji.so

    /usr/lib/firefox-3.0.4/plugins/ 是安装 Firefox V3.0.4 的位置。
  5. 要检查浏览器是否启用了 Functional Tester,启动 Functional Tester 并单击 Configure
  6. 选择 Enable Environments for Testing
  7. 在 Enable Environments 窗口中,单击 Web Browsers 选项卡,选择 Firefox,启用它,然后将其设置为默认浏览器。
  8. 单击 Test,您应当会看到如下所示的浏览器窗口:

    图 1. 浏览器支持测试
    使用 Rational Functional Tester 自动化 WebSphere Message Broker Toolkit 操作

  9. 单击 Run Diagnostic Tests。成功完成浏览器支持测试后,应当获得测试结果 PASSED:

    图 2. 浏览器支持测试结果
    使用 Rational Functional Tester 自动化 WebSphere Message Broker Toolkit 操作

    对于 Microsoft Windows,按照图 1 和 2 所示的类似方式检查 Internet Explorer 是否支持 Functional Tester。
  10. 现在单击 Java Environments 选项卡:

    图 3. 启用环境:JRE
    使用 Rational Functional Tester 自动化 WebSphere Message Broker Toolkit 操作

  11. 启用默认 JRE。如果没有看到任何 JRE,那么如上图 3 所示启用系统 JRE。IBM JRE V1.6 为优先选择。
  12. 单击 Test 以测试 JRE 配置。您应当看到如下所示的弹出窗口,确认测试结果:

    图 4. JRE 配置测试结果
    使用 Rational Functional Tester 自动化 WebSphere Message Broker Toolkit 操作

  13. 单击 Eclipse Platforms 选项卡。
  14. 添加并启用 Message Broker Toolkit Eclipse 路径,如图 5 所示:

    图 5. 启用环境:Eclipse
    使用 Rational Functional Tester 自动化 WebSphere Message Broker Toolkit 操作

  15. 单击 Finish
  16. 单击 Configure
  17. 选择 Configure applications for testing
  18. 添加 Message Broker Toolkit 可执行文件,如图 6 所示,然后单击 Finish

    图 6. Application Configuration Tool
    使用 Rational Functional Tester 自动化 WebSphere Message Broker Toolkit 操作

  19. 完成配置后,启动 Message Broker Toolkit 并检查 Functional Tester Test Object Inspector 是否识别出 Message Broker Toolkit 应用程序对象。参见图 7。在继续之前,Test Object Inspector 需要能够识别应用程序软件对象:

    图 7. Application Configuration Tool
    使用 Rational Functional Tester 自动化 WebSphere Message Broker Toolkit 操作

  20. 您应当始终通过 Functional Tester 启动测试中的应用程序软件:单击 Test Object Inspector 窗口中的 Application 菜单,如图 8 所示。但是如果不希望通过 Functional Tester 菜单启动测试用的软件,那么添加 /opt/IBM/SDP/FunctionalTester/bin/libftevent.so 文件路径,同时研究配置文件中的 LD_PRELOAD 变量:

    图 8. 使用 Functional Tester 启动测试应用程序
    使用 Rational Functional Tester 自动化 WebSphere Message Broker Toolkit 操作

使用 Functional Tester 自动化 GUI 操作

可以通过多种方法使用 Functional Tester 自动化 GUI 操作:

  • 通过手动编码。
  • 使用 Functional Tester Recorder 记录并回放脚本:Functional Tester 记录用户对测试软件的操作,并且您可以使用 Functional Tester 回放记录的脚本。要记录自己的脚本,单击 Script 菜单,然后选择 Add Script Using Recorder
  • 使用 Functional Tester find() API 或 Root Finder 方法:您可以在 Functional Tester 中编写自己的 Java 代码来自动化 GUI 操作。Root Finder 方法主要处理测试软件的对象属性。

脚本录制和播放方法实现起来更容易、更快,但它高度依赖于屏幕分辨率和屏幕坐标。因此,大多数录制的脚本无法直接移植到其它机器上,除非这些 机器使用相同配置设置。此外,Functional Tester 在 Linux 上不支持脚本记录。您可以使用 Root Finder 方法来解决这些限制,使您的代码具有健壮和可移植特性。本文重点介绍使用 Root Finder 方法自动化 GUI 操作。

Root Finder 自动化方法的 Java 代码

TestObject[] testObjects = null; testObjects = root.find(RationalTestScript.atDescendant("<property1>","<value1>",       ["<property2>","<value2>")]); if (testObjects.length > 0) {    RationalTestScript.logInfo("Log text goes here.....");    GuiTestObject gto = new GuiTestObject(testObjects[0]);    gto.waitForExistence();    boolean b=gto.exists();    if(b==true){       gto.click();    }    gto.unregister(); else {    RationalTestScript.logError("\n Error message");    } }

关于该代码片段的解释:

  • TestObject 包含 Message Broker Toolkit 中 GUI 对象的引用:
    TestObject[] testObjects = null;

  • 该行代码根据 find 参数中的属性查找 GUI 对象。该函数接受一个或两个参数作为输入:
    testObjects = root.find(RationalTestScript.atDescendant("<property1>","<value1>", ["<property2>","<value2>")]);

  • 该行代码将信息记录到 Functional Tester 测试日志中:
    RationalTestScript.logInfo("Log text goes here.....");

  • 该行代码获得 root finder 找到的对象引用。该引用稍后将用于程序中的 GUI 操作:
    GuiTestObject gto = new GuiTestObject(testObjects[0]);

  • 该行代码将继续等待,直到对象被创建:
    gto.waitForExistence();

  • 该行代码将对引用的对象执行左键单击(left-click)操作:
    gto.click();

  • 该行代码取消对对象的引用:
    gto.unregister();

可以采用不同的方法针对基准结果(baseline)检查中间结果。可以通过异常以编程方式处理错误,本文提供的样例代码就使用了这种方法。还可以通过选择 Script => Insert verification point,在代码中插入检查点。

运行样例代码

您可以 在文章底部下载用 Java 编写的样例 Functional Tester 代码。该代码启用了 Message Broker Toolkit,导入并部署了 Address Book Sample,然后从 Message Broker 和 Message Broker Toolkit 工作空间中移除了样例。解压缩该文件并将 .rftjdtr 文件导入到一个新的 Functional Tester 项目,将其作为一个 Functional Test Project Item,然后运行 WMBAutomation 脚本。

故障排除

  1. 如果 Windows 或 Linux 屏幕自动或被用户锁定,Functional Tester 将无法继续进行处理。要解决这个问题,需要在测试机器上安装 UltraVNC 服务器,然后使用 UltraVNC 客户端从另一台机器上启动测试。
  2. 如果 Functional Tester 无法足够快速地识别对象,您可以修改 ScriptAssure Recognition 级别和 Warning 级别:选择 Window => Preferences => Playback => ScriptAssure
  3. 如果使用一个映像作为检查点,可以在 RFT_installation_directory/bin 目录中的 ivory.properties 文件中设置映像检查容差。在文件中作出以下修改:
    • rational.test.ft.image.use.tolerance 设置为 true
    • rational.test.ft.image.tolerance 设置为 0 到 100 之间的值,具体取决于所需的容差级别百分比。

相关文章:

  • 2021-05-28
  • 2021-12-25
  • 2021-09-29
  • 2021-10-08
  • 2021-11-16
  • 2021-11-05
  • 2021-04-20
  • 2021-07-12
猜你喜欢
  • 2021-09-30
  • 2021-08-17
  • 2021-11-11
  • 2021-08-27
  • 2021-04-27
  • 2021-07-24
  • 2022-12-23
相关资源
相似解决方案