内容


使用 IBM Rational Functional Tester 7.0.1 测试 Flex 应用程序

一个循序渐进的指南

关于这篇文章必要的信息

这篇文章假定您已经对使用 IBM® Rational® Functional Tester 进行自动化测试的基本概念已经非常熟悉。请查看参考资源部分中的链接,是对 Rational Functional Tester 的介绍。

目标

  • 了解各种测试 Adobe® Flex® 应用程序的场景。
  • 为 Rational Functional Tester 配置一个 Flex 开发环境。
  • 建立 Flex 应用程序的自动测试操作。
  • 在 Flex 应用程序上记录和回放一个脚本。

必备条件

  • Rational Functional Tester V7.0.1
  • Microsoft® Internet Explorer 6.0
  • Adobe Flex SDK 2.0 或者更新版本
  • Adobe Flex Automation Package
  • Adobe Flash Player 9.0.28.0 或者更新版本
  • Apache HTTP Server (如果您的应用程序需要在一个服务器上工作。这里有一些对 RuntimeLoading 组件理解的信息)

假设

使用 Rational Functional Tester 测试 Flex 应用程序需要 Flex 开发人员与测试人员工作之间的合作。这篇指南假定下面这些各自的角色都是真的。

开发人员

  • 对 Flex 应用程序的开发和编辑有一定的了解
  • 是编写 Flex 应用程序源代码的程序员,并且了解 Flex SDK 和 Automation Framework
  • 对 Web 服务器配置和部署有完全的了解
  • 可能对 Rational Functional Tester 并不熟悉

测试人员

  • 没有应用程序的源代码
  • 没有 Flex SDK 和 Automation Framework
  • 可能对 Web 服务器配置和部署也不熟悉

机器配置

开发人员的机器

  • Flex Builder 2.0.1 或者更高级版本,Flex SDK 2.0 或者更高级版本,Flex Automation Framework
  • Microsoft Internet Explorer 6.0
  • Adobe Flash Player 9.0.28.0 或者更高级版本

测试人员的机器

  • Web 服务器访问(例如,Apache 或者 IIS)
  • Internet Explorer 6.0
  • Flash Player 9.0.28.0 或者更高级版本

Web 服务器机器

  • Flex Automation Package

Rich Internet Application (RIA) 是一种新的 Web 应用程序术语,它在整个 Internet 将灵活性、响应度,以及桌面应用程序的简单使用与更广泛的访问结合起来。这些应用程序变得越来越普遍。Adobe® Flex® 是一个跨越平台的开发框架,用来创建这样的应用程序。Flex 应用程序通常是使用 Adobe® MXML™,Flex 标识语言,或者 Adobe® ActionScript® 语言来编写的。当与 Flex SDK 库一起编译时,.mxml 或者 .as 文件将给您一个 Adobe® Shockwave® (.swf) 文件,这才是真实的应用程序。.swf 文件可以在 Flash 播放器中运行,或者内嵌在 HTML 中。

Rational Functional Tester 是一个测试自动工具,它可以提供一套特性来测试基于 Java™ 技术,HTML,Microsoft® .NET,SAP,以及其它技术来测试 GUI 应用软件。测试人员可以记录并作用于这样的应用程序上,从而产生测试脚本。与这些一起,他们还可以添加验证点和驱动数据。

Rational Functional Tester 7.0.1 包括关键字测试以及支持使用 Flex SDK 2.0 测试应用程序组件。这样提供了测试运行在 Internet Explorer 的 Flex 应用程序的特性。紧接下来的部分提供了一个按部就班的指导,激活了自动化支持,并测试应用程序。

三种测试 Flex 应用程序的方法

开发人员激活了在设计和以运行阶段使用 Rational Functional Tester 测试 Flex 应用程序的特性。这里,加强意味着添加参考到 Rational Functional Tester 适配器和 Flex Automation Framework 库到被测试的应用程序。对于测试 Flex 应用程序有三种可能的情形:

  1. 使应用运行在 Web 服务器上。 这使开发人员可以将 Flex 应用程序与 Flex SDK 库,Flex Automation Framework 库,以及 Rational Functional Tester 适配器联合起来,并且在一个测试人员可以访问和用来测试的 Web 服务器上操作应用程序。
  1. 使应用运行在本地机器上。 当源代码可利用时,用户可以将源代码与 Flex SDK 库,Flex Automation Framework 库,以及 Rational Rational Functional Tester 适配器联合起来。应用程序在本地机器上运行。
  1. 应用程序没有激活的自动化支持。在案例中,应用程序运行在一个 Web 服务器上,并且 Rational Functional Tester 的 Runtime Loader 组件是用来测试应用程序的。

对于开发人员:为测试准备应用程序

Flex 应用程序开发人员的部分阐述了使用 Rational Functional Tester 激活 Flex 应用程序测试的几种不同的方法。

首先,下载 testMyApp.mxml 文件,它是一个您将用来演练的范例应用程序(请看 下载)。在您的本地机器上创建地址,并将文件保存在:C:\FlexTutorial。

安装 Flex 环境

在您使用 Rational Functional Tester 测试您的 Flex 应用程序之前,您需要安装 Flex 环境:

  1. automation_agent.swc 文件从 <flex automation install directory>/frameworks/libs 地址拷贝到 <flex builder install directory>/Flex SDK 2/frameworks/libs 地址。
  2. automation_agent_rb.swc 文件从 <flex automation install directory>/frameworks/locale/en_US 地址拷贝到 <flex builder install directory>/Flex SDK 2/frameworks/locale/en_US 地址。

注意:
这是 en_US locale (U.S. English)的路径。如果您使用的是另一个不同的位置,用那个地址代替 en_US 。理想情况下,Flex 自动操作安装地址是:C:\Program Files\Adobe\Flex Automation 和 Flex 构建者安装地址是:C:\Program Files\Adobe\Flex Builder 2

激活测试的 Flex 应用程序包括与 Rational Functional Tester Adapter (rft.swc) 和 Flex Automation Framework 库一起构建应用程序。这里有三种实现的方法,部分具体阐述了每一种方法:

  • 配置 Flex Builder
  • 配置 Flex 命令行编译器
  • 配置 Runtime Loader 组件

为编译配置 Flex Builder

如果您有了 Flex Builder,您可以配置它,从而为编辑激活 Flex 应用程序。

  1. 启动 Flex Builder。
  2. 创建一个新的 Flex 项目。
  3. 在导航器中选择 Flex 项目。
  4. 点击 Select Project > Properties > Flex Compiler
  5. 键入 “Additional compilerter arguments”区域中列表 1中显示的代码。
列表 1. 附加编译器变量的代码
-Include-libraries "<flex builder install dir>\Flex SDK 2
\frameworks\libs\automation.swc" "<flex builder install dir\Flex SDK 2
\frameworks\libs\automation_agent.swc" "<flex builder install dir>\Flex SDK 2
\frameworks\libs\automation_charts.swc" "<functional tester dir>
\Functional Tester\bin\rft.swc"
  1. 点击 OK 来保存您的变更。
  2. 点击 OK 来关闭 Properties 对话框。
  3. 编译您的 Flex 范例应用程序:
    1. 打开 Flex Builder 中的 testMyApp.mxml 文件。
    2. 这些输出文件是 testMyApp.swf 和 testMyApp.htm。文件是一个 HTML 包装器,由 Flex Builder 在应用程序目录下产生的(在案例中为,C:\FlexTutorial)。

HTML 已经准备好使用 Rational Functional Tester 进行测试,您将用在您的测试步骤中使用它。

使用此命令行激活自动化测试

如果 Flex Builder 不可用,源文件就需要与 Flex SDK 库,Flex Automation 库,以及 Rational Functional Tester 适配器在命令行联合起来。您可以通过运行安装在 <functional tester dir>\FunctionalTester\Flex 文件夹中与 Rational Functional Tester 7.0.1 一起的成批文件来实现:
buildapplicationwithadaptor.bat

  1. 将批文件拷贝到与 .mxml 文件 (C:\FlexTutorial,您可以在这里存储样例应用程序,testMyApp.mxml) 相同的目录下。
  2. 在命令提示下来到目录,用 mxml 文件名称作为变量开始运行批文件。例如,如果应用程序是 testMyApp.mxml,正如在例子中,在命令行的提示下使用以下命令:
    Buildapplicationwithadapter.bat testMyApp.mxml

应用程序会导致产生一个 .swf 文件 (在案例中为 testMyApp.swf)

注意:
只有当文件包括图表控件时,您才需要 automation_charts.swc 文件。

配置 Runtime Loader 组件

Runtime Loader 组件包括 RuntimeLoader.swf Flex 应用程序,它对 Rational Functional Tester 已经事先激活,并且也可以用来对非 Rational Functional Tester-enabled 应用程序在运行时的测试。当您不想把 Rational Functional Tester Adapter 和 Flex Automation Framework 库作为一个依存关系引入您的应用程序时,您可以使用组件。相反,您可以要求来自 Rational Functional Tester 的 RuntimeLoader 组件文件来对它进行编译,并且使用 Flex SDK 和 Rational Functional Tester Adapter,然后将它部署到 Web 服务器上。组件的文件可在目录下获取:
<functional tester dir>\FunctionalTester\Flex

注意:
对于 Flex SDK 2.0,您可以使用包含在目录下 Rational Functional Tester 中的 runtimeloader.swf :
<functional tester dir>\FunctionalTester\Flex

将编译的 Flex 应用程序嵌入一个 HTML 中

要使用 Rational Functional Tester 来测试 Flex 应用程序,您需要将应用程序嵌入到一个 HTML 文件中。因此,接下来您要创建一个 HTML 页面。将列表 2中的代码拷贝到一个文本编辑器中,并将它保存为 testMyApp.html

列表 2. Flex 应用程序的 HTML 包装器
<HTML>
<HEAD><TITLE>Flex Sample Application Testing</TITLE>
</HEAD>

<BODY>
<HR>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="myapp" width="100%" height="100%" 
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="movie" value="testMyApp.swf" /> 
<param name="quality" value="high" />
<param name="bgcolor" value=#CCCCCC />
<param name="allowScriptAccess" value="sameDomain" />
<embed src="testMyApp.swf" quality="high" bgcolor=#CCCCCC
width="100%" height="100%" name="myapp" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
plug-inspage="http://www.macromedia.com/go/getflashplayer">
</embed>
</object>

</BODY>
</HTML>

正如您所看到的那样,swf 名称已经作为一个参数通过。因此,如果您想要测试任何其它的应用程序,您可以通过更改 .swf 文件名称或者创建另一个 HTML 页面来使用相同的 HTML 页面。

部署应用程序

您可以将 swf、它的依赖文件和 HTML 包装器传递给测试人员,或者测试人员可以将这些部署到一个 Web 服务器上。

Flex 应用程序文件包括:

  • 应用程序文件 (SWF)
  • HTML 包装器以及包装器文件(包装器文件可包括 SWF 文件,JavaScript 文件,以及其它文件)
  • 模块文件(SWF)
  • RSL 文件 (SWC)
  • Helper 文件,像主题 SWC 文件,风格 SWF 文件,以及图像、视频和音频文件

部署 Flex 应用程序包括所有这样的必须文件在 Web 服务器上的部署。

对于测试者:测试 Flex 应用程序

您将仅仅拥有开发人员提供的激活的 .swf 文件和 HTML 包装器,或者非激活的 .swf 文件。

在您的本地机器上测试应用程序

如果 HTML 包装器已经被提供,您仅仅需要按照简易练习下记录过程的步骤配置用来测试的 HTML 页面即可。

如果您仅仅拥有非激活的 .swf 文件,您可以使用这里所解释的运行时加载组件。

当应用程序部署在一个 Web 服务器上,那么应用程序的运行时加载是可用的。运行时加载组件在 Rational Functional Tester\Flex 目录下是可用的。

  1. 将 runtimeloader.swf 文件和 runtimeLoadingTest.html 文件拷贝到 Web 服务器的根目录。例子使用了一个 Apache 服务器,因此您将要把这些组件拷贝到 apache\htdocs 目录。被测试的应用程序部署在相同的目录下。
  2. 在样例中找到 runtimeTestApp.swf 文件,并将它部署到服务器上,这样这三个组件都会在相同的 (apache\htdocs) 目录下。
    • runtimeLoader.swf
    • runtimeLoadingTest.html
    • 应用程序 (这里是 runtimeTestApp.swf )

开始测试应用程序,软件名称将会作为一个询问参数通过到 runtimeLoadingTest.html 页面:
http://localhost/RuntimeLoadingTest.html?automationswfurl=<applicationtotest.swf>

在这里,应用程序是 runtimeTestApp.swf,因此要键入 URL 地址:
http://localhost/RuntimeLoadingTest.html?automationswfurl=runtimeTestApp.swf

HTML 页面与 Flex 应用程序一起下载,已经准备好被 Rational Functional Tester 测试。

有效方法的正反两面

到目前为止,您已经学习了关于有效激活的两种类型,以及什么时候使用哪一种。现在,您将回顾一下每个有效激活的正反两个方面。

编译期间的激活

在编译期间使用 Flex 应用程序激活的好处

  • 多个 Rational Functional Tester 激活 Flex 应用程序可以嵌入到一个单一 HTML 页面,并且可以同时被测试。
  • 当不同的 Flex 应用程序相互通讯时将会非常方便。用户可以将所有相关的 Rational Functional Tester 激活 SWF 文件嵌入一个单一页面,并且可以在测试的基础上执行场景。
  • 可以通过在本地运行 SWF 文件进行测试。

编译期间激活的局限性:

  • 在将它部署到产品服务器之前,需要清除 Flex Automation Framework 参考。然而这样并没有太大影响。
  • 由于他仅仅访问了 Flex 应用程序源代码,因此仅仅靠 Flex Developer 就可以完成。

在运行期间激活

使用 Runtime Loader 测试 Flex 应用程序的好处:

  • 被测试的应用程序可以部署到产品环境中。
  • 由于技术复杂性是隐藏的,所以测试人员很容易理解。

使用 Runtime Loader 测试 Flex 应用程序的局限性:

  • 只有独立的 Flex 应用程序可以一次性测试。
  • Runtime Loader 不能在本地运行,需要将 Runtime Loader 文件和要测试的应用程序部署到 Web 服务器上。

简单的练习

现在该是进行一个简单的练习来操作您所学到的知识的时候了。

配置应用程序

在 Flex 应用程序上开始记录,您首先要激活和配置要测试的应用程序。

  1. 选择 Functional Tester > Configure > Enable Environments for Testing
  2. 选择 Web Browsers 制表中的 Internet Explorer ,然后选择 Enable
图 1. 激活 Internet Explorer 环境视图
工作空间图片
工作空间图片
  1. 点击 Test,结果将会显示 “Passed”。
  2. 在 Java Environments 下,选择 Javajre…. ,然后点击 Enable(图 2)。
图 2. 激活 Java/JRE 环境
工作空间图片
工作空间图片
  1. 再次点击 Test ,您应该获取如图 3所显示的回应。
图 3. JRE Tester 结果信息
对话框图片
  1. 要配置应用程序进行测试,选择 Functional Tester >Configure > Configure Applications for Testing
  2. 在 Application Configuration 向导中,点击 Add (图 4)。
图 4. Application Confirmation Tool (向导)
工作空间图片
工作空间图片
  1. 当您获得 Add Application 向导时,选择 HTML Application单选按钮并点击 Next(图 5)。
图 5. 选择应用程序
工作空间图片
工作空间图片
  1. 在下一个屏幕上,选择 Local 单选按钮(图 6),然后点击 Browse 来寻找应用程序目录(在案例中是:C:\FlexTutorial)。
图 6. 选择本地 HTML 应用程序
工作空间图片
工作空间图片

注意:
当应用程序是由 Web 服务器托管时,您需要选择 URL 单选按钮(请看图 7),并提供应用程序的 URL 地址。在当前这种情形下,来自 Runtime Loader 的 URL 地址为:
http://localhost/RuntimeLoadingTest.html?automationswfurl=runtimeTestApp.swf

图 7. 托管应用程序的可选方法
工作空间图片
工作空间图片
  1. 点击 Finish,在下一个向导中,点击 ApplyFinish 按钮。

您的应用程序现在已经配置好可以进行测试了。

回放脚本

  1. 启动记录器,点击 Start Application,并从 Application Name 下拉列表中,选择您配置的应用程序(图 8)。
图 8. 启动 Application 视图
工作空间图片
  1. 当应用程序启动后,您可以使用这些控件来记录事件。

范例应用程序看起来如图 9所示。

图 9. 范例应用程序
工作空间图片
工作空间图片

图 10 显示了 Rational Functional Tester 记录的范例脚本。

图 10. 记录的脚本
测试脚本图片
测试脚本图片
  1. 点击 Rational Functional Tester IDE 中的 Playback 按钮来执行脚本。

发现并修理故障

如果出现下面任何一个错误,您可以自己轻松地进行处理。

安全警告

当 Flex 应用程序启动后会弹出一个安全侵害提示(请看图 11)。

图 11. 错误提示和描述
错误对话框图片
错误对话框图片

确保您测试的 Flex 应用程序是从一个信任的文件夹中运行的。

  1. 您可以将 OUT 目录添加到 FlashPlayerTrust 文件夹中的 Flex 文件中。
  2. 您可以在 C:\Windows\System32\Macromed\Flash\ 目录下创建一个 FlashPlayerTrust 文件夹。
    1. 创建一个 .txt 文件并天际被测试应用程序的路径到文件。
    2. 将文件保存为 Flex,不带扩展名。

您可以添加目录的任何数字到 TXT 文件。例如,如果 testMyApp.swf 和 testMyApp.html 文件都在 C:\FlexTutorial 目录下,您可以添加路径到 Flex 文件中。在 资源 中的 Learn 部分可以找到更多详细的信息。

FlexPlugin Call Failed 警报

当应用程序从 localhost/IIS 服务器中运行时,您可以获得一个表明插件调用失败的提示(请看图 12)。

图 12. 调用失败通知
对话框图片

如果发生失败,请核查 Internet Explorer ActiveX 和插件的本地安全设置:

  1. 打开 Internet Explorer。
  2. 从菜单工具条中选择 Tools > Internet Options
  3. 点击 Security 标签。
  4. 选择合适的 Web 内容区域。例如,如果您在本地机器上安装了 Apache 或者 IIS,请选择 Local Intranet
  5. 选择 Custom Level
  6. 从“Reset to”列表中,选择 Medium-low
  7. 在 “Initialize and script ActiveX controls not marked as safe” 下,点击 Enable 单选按钮。
  8. 点击 OK

应用程序页面没有显示

当应用程序托管在一个服务器上,并且应用程序页面没有正确地显示,确保服务器正在运行。


下载资源


相关主题

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=354488
ArticleTitle=使用 IBM Rational Functional Tester 7.0.1 测试 Flex 应用程序
publish-date=11242008