zoukankan      html  css  js  c++  java
  • 使用 Rational Functional Tester 自动化 WebSphere Message Broker Toolkit 操作

    简介

    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. 浏览器支持测试
      浏览器支持测试

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

      图 2. 浏览器支持测试结果
      浏览器支持测试结果

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

      图 3. 启用环境:JRE
      启用环境:JRE

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

      图 4. JRE 配置测试结果
      JRE 配置测试结果

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

      图 5. 启用环境:Eclipse
      启用环境:Eclipse

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

      图 6. Application Configuration Tool
      Application Configuration Tool

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

      图 7. Application Configuration Tool
      Application Configuration Tool

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

      图 8. 使用 Functional Tester 启动测试应用程序
      使用 Functional Tester 启动测试应用程序

    使用 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 之间的值,具体取决于所需的容差级别百分比。
  • 相关阅读:
    全排列算法(java实现) 组合算法实现
    int -2147483648 ----- 2147483647
    Gradel 多渠道打包 代码混淆
    Android开发环境搭建
    自定义相册、九宫格显示图片
    新技术:retrofit
    新技术:dagger
    主流架构:MVVP
    GreenDao3.2的使用
    第三方框架:EventBus
  • 原文地址:https://www.cnblogs.com/shihao/p/2316335.html
Copyright © 2011-2022 走看看