IBM® Rational® Functional Tester 使您能够在多个领域自动化应用程序的回归测试,这些领域中包括 Java、HTML、.NET、Microsoft Silverlight、Adobe Flex 和 Dojo Toolkit。版本 8.2.1 增加了对测试 Flex Spark 应用程序的支持,以及其他一些新特性。本文将介绍用于测试 Flex Spark 应用程序的设置和脚本创建。您将学习如何启用 Spark 应用程序,让 Rational Functional Tester 可以识别 Spark 控件。这会让您更好地理解它,使您更轻松地使用 Rational Functional Tester 实现 Flex Spark 的测试自动化。
- Rational Functional Tester 8.2.1 或更高版本。
- Adobe Flash Builder 4.0 或更高版本。
- Adobe Flash Player 10.0 或更高版本。
- Microsoft Internet Explorer 或 Mozilla Firefox 浏览器
- Java Runtime Environment (JRE)
Rational Functional Tester Flex 测试支持的概述
Rational Functional Tester 支持对基于 Flex SDK 2.0 及更高版本构建的 Flex 应用程序进行测试。随着 Flex4 的发布,针对 Flex 用户界面组件推出了一个称为 Spark 的新皮肤组件架构。如果包含 Flex Spark 控件的应用程序是基于 Flex SDK 4.0 或 4.1 而构建的,那么 Rational Functional Tester Version 8.2.1 及更高版本将会支持这些应用程序的测试。Flex 应用程序的测试需要启用 Flex 应用程序的步骤,以便可以使用 Rational Functional Tester 对其进行测试。启用涉及在 Flex 应用程序中添加对自动化库的引用。这可以在源代码级别上完成,或作为运行时启用来完成。本文将介绍在源代码级别上的启用。
使用 Rational Functional Tester 进行 Flex 应用程序测试自动化,这要求添加对 Flex 和 Functional Tester Flex automation 自动化库的引用。这些库其实是自动化的 .swc 文件。Flex 自动化库随 Flash Builder 一起安装,与其对应的 Functional Tester Flex automation 自动化库则随 Rational Functional Tester 一起安装。
您可以使用以下三种方式之一将引用添加到自动化库,以下各节将对它们逐个进行解释:
- 在 Flash Builder IDE 中添加引用
- 使用 Rational Functional Tester Configure Application 向导添加引用
- 使用命令行添加引用
方法 1. 在 Flash Builder IDE 中添加引用
- 启动 Flash Builder 4.0 或更高版本,并创建一个新的 Flex 项目。
- 导入附件的 TestSparkwithRFT.mxml 应用程序。
- 选中 Flex Project > Src > Package。
- 右键单击包,并单击 Import。
- 选中 General > File System。
- 单击 Next。
- 浏览到保存 .mxml 文件的目录。从右边窗格中选中 .mxml 文件,并单击 Finish。
- 转到 Project > Properties > Flex Compiler。
- 在 Additional Compiler 参数文本框中,添加清单 1 中的库。
清单 1. 要添加的库
-locale en_US -include-libraries "C:\Program Files\Adobe\Adobe Flash Builder 4.x\sdks\ 4.x\frameworks\libs\automation\automation.swc" "C:\Program Files\Adobe\Adobe Flash Builder 4.x\sdks\4.x\ frameworks\libs\automation\automation_agent.swc" "C:\Program Files\Adobe\Adobe Flash Builder 4.x\sdks\4.x\frameworks\libs\automation\automation_spark.swc" "C:\Program Files\Adobe\Adobe Flash Builder 4.x\sdks\4.x\frameworks\libs\automation\ automation_dmv.swc" "C:\Program Files\IBM\SDP\FunctionalTester\bin\rftFlex4.0.swc" "C:\Program Files\IBM\SDP\FunctionalTester\bin\rftProp_Flex4.0.swc" |
重要事项:
在上面的参数中用相应的 Flash Builder 和 SDK 版本替换 4.x
。
注意:
上面的路径在 32 位系统中是理想路径。您需要更改参数,使其指向 .swc 文件的正确位置。添加上述参数后,在这个项目中创建的任何 Flex Halo 或 Spark 应用程序将准备就绪,可以使用 Rational Functional Tester 对其进行测试。
该代码是故意断行的,以适合屏幕显示。请使用代码清单下载文件的正确代码。
图 1. Flash Builder Project > Properties 向导,包含其他编译器参数

- 单击 Apply,然后单击 OK。
Flash Builder 将编译 .mxml 文件,而相应的 .swf 和 .html 文件将在 Flex Project 的 bin-debug 位置中创建。在本例中,将生成以下两个文件:
- TestSparkwithRFT.swf
- TestSparkwithRFT.html
Flex Spark 应用程序的测试将使用此 .html 文件。
方法 2. 使用 Rational Functional Tester Configure Application 向导添加引用
- 将附件的 TestSparkwithRFT.mxml 文件(参见 “下载”)复制到您的 C:\ 驱动器上的目录中。例如:
C:\TestFlexSpark\) - 从 Rational Functional Tester 透视图中选择 Configure Applications for Testing,启动 Application Configuration Tool 向导。
- 在 Application Configuration Tool 向导中,单击 Add 按钮。
- 在向导中选择 Flex Application,然后单击 Next。
图 2. Add Application 向导

- 选择 Configure Flex application setup,并单击 Next。
图 3. 选择 Flex 应用程序配置类型

- 在 Flex application configuration 向导中,选择:
- Local Application
- Flex SDKs 为 4.0/4.1(因为 Spark 支持是从 Flex 4.x 开始)
- 您的系统的 OS 类型
- 单击 Browse(针对 Application 文本框的那个),选择 Flex Spark Application 文件。
- 单击 Browse(针对 SWF Target Location 的那个),选择应该生成编译的 Flex Spark Application .swf 文件的目录。
图 4. Add Application 向导,选择 Flex 应用程序配置参数

- 选中 Generate HTML Page 复选框,以生成与此 Flex Spark 应用程序对应的一个 HTML 页面。
注意:
Flex 应用程序仅在加载到 HTML 浏览器中时可以进行测试。Rational Functional Tester 不支持在独立 Flash 播放器中的 Flex 应用程序。
根据 SWF Target location 填充启用的 HTML 文本框。
- 单击 Finish。
请注意,在 Application Configuration Tool 中的 Applications 列表中出现的 Spark 应用程序。此时,您可以重命名所添加的应用程序。
- 将附件文件解压缩到您的系统上的位置。例如:
C:\TestFlexSpark - 启动命令提示符(最好是 Adobe 命令提示符或 Microsoft Visual Studio 命令提示符)。
- 转到应用程序的目录(解压缩文件的目录,在本例中是 C:\TestFlexSpark)。
- 在命令提示符运行压缩文件中所提供的批处理文件,文件名是 .mxml 文件的名称(如图 5 所示的屏幕截图):
C:\TestFlexSpark>buildsparkapplicationwithFlex41adaptor.bat TestSparkwithRFT.mxml
图 5. 命令提示符显示了要执行批处理文件的命令

提示:
在 Rational Functional Tester 安装的 Flex 目录中提供了相应的批处理文件。
执行上面的命令后,生成此 swf 文件:
TestSparkwithRFT.swf。
当您拥有此 .swf 文件时,可以使用一个对象或嵌入标记将它嵌入 HTML 页面,例如 TestSparkwithRFT.html(它包含清单 2 中的代码),如此处所示。
清单 2. 加载 Flex swf 的 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="TestSparkwithRFT.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value=#CCCCCC /> <param name="allowScriptAccess" value="sameDomain" /> <embed src="TestSparkwithRFT.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> |
您可以对另一个 Flex 应用程序使用相同的 HTML 文件,只需更改代码片段中的 .swf 名称。
如果遵循了上面的第二种方法,那么 Flex 应用程序的配置已经完成,您可以在 StartApplication 向导列表中看到它。
在第一种和第三种方法中,您可以指向相应的 HTML 页面来配置 Flex Spark 应用程序进行测试。
- 从 Rational Functional Tester 透视图中选择 Configure Applications for Testing,启动 Application Configuration Tool 向导。
- 在 Application Configuration Tool 向导中,单击 Add 按钮。
- 在 Add Application 向导中,选择 Flex Application,然后单击 Next。
- 选择 Add URL of Flex Application。
图 6. Add Application 向导,添加 Flex 应用程序的 URL

- 在文本框中提供 HTML 文件的路径。例如,如果您使用了第三种方法,则需要添加以下路径:
C:\TestFlexSparkApplication\TestSpark.html - 单击 Finish。
现在,Spark 应用程序出现在 Application Configuration Tool 的 Applications 列表中。
在配置完应用程序之后,就可以开始录制针对 Spark 应用程序的测试脚本了。
- 单击 Record 开始录制 Rational Functional Tester 脚本。
- 输入脚本名称,选择脚本文件夹位置,然后单击 Finish。
- 在录制窗口中单击 Start Application,选择前面已配置好的 Flex Spark 应用程序。
在 Internet Explorer(或您的默认浏览器)中启动应用程序。您可以在控件上执行操作,这些操作将会录制下来。
在您完成测试场景后,可以停止录制,这会生成测试脚本,如图 7 中的示例测试脚本所示,它显示了 Flex Spark 对象及其相应的事件已被识别。这使得用户可以捕获和回放 GUI 级别的交互,以验证数据和属性,并在 Spark 控件上执行数据驱动。
图 7. Rational Functional Tester 脚本样例,包含 Flex Spark 控件上录制的操作

图 8. 对象映射样例显示了 Spark 控件的层次和属性

为了测试 Flex 应用程序,应该启用所使用的浏览器。使用 Rational Functional Tester 的 Enable Environments for Testing 向导启用浏览器,并确保通过了浏览器启用测试。
应该从可靠目录运行应用程序。请按照下列步骤分配信任的名称:
- 在以下目录之一创建一个文件夹 FlashPlayerTrust:
- C:\WINDOWS\system32\Macromed\Flash(在 32 位系统上)
- C:\Windows\SysWOW64\Macromed\Flash(在 64 位系统上)
- 在 FlashPlayerTrust 文件夹中创建一个名为
Flex
的文件,不使用任何文件扩展名。 - 在 Flex 文件中输入 Flex 应用程序的目录路径。例如,在上述示例中(第二种或第三种方法),Flex 应用程序在 C:\TestFlexSpark 中,所以在 Flex 文件中输入的路径为
C:\TestFlexSpark
。 - Save 文件。
- 在将 Flex 应用程序加载到浏览器时,在警告对话框中单击 Yes,允许加载 ActiveX 插件。
如果使用 Flash Builder IDE 生成的默认 HTML 页面,则无法识别 Flex 控件。
- 在编辑器中打开 HTML 页面。
- 删除此语句,它位于 HTML 页面的开始之处:
<!-- saved from url=(0014)about:internet -->
由于此语句,不会将 Rational Functional TesterFlexPlugin.dll 加载到浏览器中,并且无法测试 Flex 应用程序。如果您使用 Flash Builder 并希望测试这些应用程序,那么请修改 HTML 页面的模板,以便排除该语句。
在 Microsoft Windows 服务器上,需要以管理员身份运行 Rational Functional Tester,然后才能在 Flex 应用程序上进行录制。
- 添加其他编译器参数后,在 Flash Builder IDE 中出现错误
确保 .swc 文件的路径是正确的。
- 在使用第二种方法后,HTML 页面变成空白页面
检查目录中是否创建了 .swf 文件。如果在目录中没有创建的 .swf 文件,那么请参阅下一个问题的说明。
- 在使用第二种方法添加引用时,生成了 .bat 和 .html 文件,但没有生成 .swf 文件
尝试在命令提示符下手动执行批处理文件。它会显示出确切的错误,该错误可能与 .swc 文件的路径有关。如果 .swc 文件的路径不正确,那么请修改 .bat 文件,使其指向 .swc 文件的正确位置,然后在命令提示符下再次手动执行该批处理文件。这应该会生成所需的 .swf 文件。
提示:
对于未来的引用,建议在 Rational Functional Tester 安装的 Flex 目录中的FlexInstallInfo.properties 文件中修改路径。在该文件中修改路径是一次性的任务,并且可以解决使用 Rational Functional Tester Application Configuration 向导生成 .swf 文件的问题。在修改 FlexInstallInfo.properties 文件后重新启动 Rational Functional Tester。
- 如果在手动执行批处理文件时看到这个异常(如前一个问题所述):
线程 "main" java.lang.UnsupportedClassVersionError 中的异常:flex2/tools/Mxmlc(不支持 major.minor 版本 49.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
请将 JAVA_HOME 变量设置为指向更高版本的 JDK,如 jdk 1.6。
- 虽然正确设置了环境,但什么都没有录制下来。
尝试以下步骤,然后重新启动应用程序"
- 访问 Flash Player 的 Settings Manager。
- 在 Flash Player 打开一个应用程序。
- 单击右键并选中 Settings。
- 选中 Privacy 选项卡。
- 单击 Advanced。Adobe Flash Player 启动新的浏览器窗口,并加载 Settings Manager 帮助页面。
- 单击 Global Security Settings 链接,打开 Global Security Settings 窗口。
- 将您的应用程序目录添加到 Secured 或 Trusted 目录。在 "Always trust files in these locations" 下拉菜单中,单击 Add location,并浏览到该位置。
注意:
有关设置安全配置的更多信息,请访问 Adobe 网站。
描述 | 名字 | 大小 | 下载方法 |
---|---|---|---|
代码清单 1 | FlexSpark-listing1.txt | 1KB | HTTP |
Flex Spark 样例 | FlexSparkSample.zip | 3KB | HTTP |
使用 RFT 的 Test Spark | TestSparkwithRFT.zip | 6KB | HTTP |