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 创建一个默认配置:
- 单击 Help 并选择 Welcome。
- 单击 Get Started。
- 单击 Default Configuration。
- 在 Creating the Default Configuration 页面上,单击 Start the Default Configuration Wizard 并遵循 Wizard 中的步骤。
配置 Functional Tester:
- 启动 Functional Tester (Eclipse IDE) 并选择工作空间,如果还没有配置默认工作空间的话。然后单击 Configure。
- 选择 Enable Environments。
- 单击 Web Browsers 选项卡。对于 Windows 操作系统,默认添加了 Internet Explorer。如果使用的是 Linux,则需安装 Mozilla Firefox V3.0.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 的位置。 - 要检查浏览器是否启用了 Functional Tester,启动 Functional Tester 并单击 Configure。
- 选择 Enable Environments for Testing。
- 在 Enable Environments 窗口中,单击 Web Browsers 选项卡,选择 Firefox,启用它,然后将其设置为默认浏览器。
- 单击 Test,您应当会看到如下所示的浏览器窗口:
图 1. 浏览器支持测试

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

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

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

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

- 单击 Finish。
- 单击 Configure。
- 选择 Configure applications for testing。
- 添加 Message Broker Toolkit 可执行文件,如图 6 所示,然后单击 Finish:
图 6. Application Configuration Tool

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

- 您应当始终通过 Functional Tester 启动测试中的应用程序软件:单击 Test Object Inspector 窗口中的 Application 菜单,如图 8 所示。但是如果不希望通过 Functional Tester 菜单启动测试用的软件,那么添加
/opt/IBM/SDP/FunctionalTester/bin/libftevent.so文件路径,同时研究配置文件中的LD_PRELOAD变量:
图 8. 使用 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 操作。
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 脚本。
- 如果 Windows 或 Linux 屏幕自动或被用户锁定,Functional Tester 将无法继续进行处理。要解决这个问题,需要在测试机器上安装 UltraVNC 服务器,然后使用 UltraVNC 客户端从另一台机器上启动测试。
- 如果 Functional Tester 无法足够快速地识别对象,您可以修改 ScriptAssure Recognition 级别和 Warning 级别:选择 Window => Preferences => Playback => ScriptAssure。
- 如果使用一个映像作为检查点,可以在
RFT_installation_directory/bin目录中的ivory.properties文件中设置映像检查容差。在文件中作出以下修改:- 将
rational.test.ft.image.use.tolerance设置为true - 将
rational.test.ft.image.tolerance设置为 0 到 100 之间的值,具体取决于所需的容差级别百分比。
- 将
| 描述 | 名字 | 大小 | 下载方法 |
|---|---|---|---|
| 代码样例 | WMBAutomation.zip | 7 KB | HTTP |
学习
- WebSphere Message Broker 资源
- WebSphere Message Broker V7 信息中心
一个可访问所有 WebSphere Message Broker V7 文档的一个 Web 门户,包含关于安装、配置和使用 WebSphere Message Broker 环境的概念、任务和参考信息。 - WebSphere Message Broker 开发人员资源页面
这些技术资源能够帮助您使用 WebSphere Message Broker 实现连通性,进行统一数据转换,并对完全不同的服务、应用程序与平台进行企业级集成,从而促进您实现自己的 SOA。 - WebSphere Message Broker 产品页面
产品说明、产品新闻、培训信息、支持信息等。 - WebSphere Message Broker V7 中的新特性
WebSphere Message Broker V7 提供通用连通性,能够在任意两点之间路由和转换消息。因为提供了简单的编程模型和功能强大的操作管理界面,它可以使复杂的应用程序集成解决方案变得更易于开发、部署和维护。这篇文章介绍了 V7 中的主要增强。 - 下载 WebSphere Message Broker V7 免费试用版
WebSphere Message Broker V7 是个专为异构 IT 环境中的通用连通性和转换而构建的 ESB,用于将业务事件生成的信息和数据实时分发给企业内外的人员、应用程序和设备。 - WebSphere Message Broker 文档库
WebSphere Message Broker 规范和手册。 - WebSphere Message Broker 论坛
找到您的技术问题的答案,与其他 WebSphere Message Broker 用户分享您的专业技术。 - WebSphere Message Broker 支持页面
一个支持问题及其解决方案的可搜索数据库,包含下载、修复程序、问题跟踪等。 - 红皮书:Patterns: SOA design using WebSphere Message Broker and WebSphere ESB
针对电子商务的模式是一组经过检验的可重用资产,您可以使用它们快速开发和部署电子商务应用程序。这份红皮书显示如何结合使用 WebSphere Message Broker 和 WebSphere ESB,以在 SOA 内部实现 ESB。它通过一个场景来演示设计、开发和部署过程。
- WebSphere Message Broker V7 信息中心
- WebSphere 资源
- developerWorks WebSphere 开发人员资源
面向使用 WebSphere 产品的开发人员的技术信息和资源。developerWorks WebSphere 提供产品下载、how-to 信息、支持资源以及一个免费技术库,该技术库包含 2000 多篇技术文章、教程、最佳实践、IBM 红皮书和在线手册。 - developerWorks WebSphere 应用程序连通性开发人员资源
帮助您构建 WebSphere 应用程序连通性和业务集成解决方案的 how-to 文章、下载、教程、培训、产品信息等资源。 - developerWorks WebSphere 业务流程管理开发人员资源
访问 WebSphere BPM how-to 文章、下载、教程、培训、产品信息等资源,帮助您建模、装配、部署和管理业务流程。 - developerWorks WebSphere SOA 和 Web 服务开发人员资源
How-to 文章、下载、教育、培训、产品信息等资源,帮助您设计和构建 WebSphere SOA 和 Web 服务解决方案。 - 最流行的 WebSphere 试用版下载
免费下载关键 WebSphere 产品试用版。 - WebSphere 论坛
针对特定产品的论坛,在那里获取您的技术问题的解答,并与其他 WebSphere 用户分享您的专业知识。 - WebSphere 演示
下载并观看 WebSphere on-demand 演示,了解 WebSphere 产品和技术如何帮助您的企业应对快速变化和日益复杂的商业环境。 - developerWorks WebSphere 每周新闻简讯
developerWorks 新闻简讯提供了您感兴趣的主题的最新文章和信息。除 WebSphere 以外,还可以选择 Java、Linux、Open source、Rational、SOA、Web 服务和其他主题。立即订阅并设计您的定制邮件。 - IBM Press 的 WebSphere 相关图书
通过 Barnes & Noble 实现便捷的在线订购。 - 与 WebSphere 有关的活动
世界各地针对 WebSphere 开发人员的会议、商贸展览、网络广播和其他活动。
- developerWorks WebSphere 开发人员资源
- developerWorks 资源
- IBM 软件产品试用版下载
免费下载 IBM® DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 产品试用版。 - developerWorks 博客
加入 developerWorks 用户和作者、IBM 编辑和开发人员的谈话。 - developerWorks 技术加油站
由 IBM 专家主持的免费技术活动可以帮助您加快学习进度,从最困难的软件项目中取得成功。这些在世界各地举行的活动包括一小时的虚拟简报、半天到全天的真实活动等。 - developerWorks 播客
收听新颖有趣的软件创新者访谈和讨论。 - IBM Education Assistant
多媒体教育模块集合,帮助您更好地理解 IBM 软件产品,更高效地使用它们来满足您的业务需求。
- IBM 软件产品试用版下载
-
IBM developerWorks 中国 WebSphere 专区:为使用 WebSphere 产品的开发人员准备的技术信息和资料。这里提供产品下载、how-to 信息、支持资源以及免费技术库,包含 2000 多份技术文章、教程、最佳实践、IBM Redbook 和在线产品手册。
获得产品和技术
- 最受欢迎的 WebSphere 试用软件下载:下载关键 WebSphere 产品的免费试用版。
- IBM developerWorks 软件下载资源中心:IBM deveperWorks 最新的软件下载。
- IBM developerWorks 工具包:下载关键 WebSphere 最新的产品工具包。
讨论
- 加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。
- 加入 IBM 软件下载与技术交流群组,参与在线交流。


