使用 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 应用程序有三种可能的情形:
[*]
使应用运行在 Web 服务器上。 这使开发人员可以将 Flex 应用程序与 Flex SDK 库,Flex Automation Framework 库,以及 Rational Functional Tester 适配器联合起来,并且在一个测试人员可以访问和用来测试的 Web 服务器上操作应用程序。
[*]
使应用运行在本地机器上。 当源代码可利用时,用户可以将源代码与 Flex SDK 库,Flex Automation Framework 库,以及 Rational Rational Functional Tester 适配器联合起来。应用程序在本地机器上运行。
[*]
应用程序没有激活的自动化支持。在案例中,应用程序运行在一个 Web 服务器上,并且 Rational Functional Tester 的 Runtime Loader 组件是用来测试应用程序的。
对于开发人员:为测试准备应用程序
下载这些文档
[*]TestEnabledApp.zip 压缩文件包括 testMyApp.mxml,testMyApp.swf,以及 SampleApp 目录,它包括 testMyApp.mxml 以及与它一起部署的依存关系。
[*]runtimeTestApp.swf 文件是一个用来测试运行时装载的非激活应用程序
请参见 下载 部分。
Flex 应用程序开发人员的部分阐述了使用 Rational Functional Tester 激活 Flex 应用程序测试的几种不同的方法。
首先,下载 testMyApp.mxml 文件,它是一个您将用来演练的范例应用程序(请看 下载)。在您的本地机器上创建地址,并将文件保存在:C:\FlexTutorial。
安装 Flex 环境
在您使用 Rational Functional Tester 测试您的 Flex 应用程序之前,您需要安装 Flex 环境:
[*]将 automation_agent.swc 文件从 <flex automation install directory>/frameworks/libs 地址拷贝到 <flex builder install directory>/Flex SDK 2/frameworks/libs 地址。
[*]将 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 应用程序。
[*]启动 Flex Builder。
[*]创建一个新的 Flex 项目。
[*]在导航器中选择 Flex 项目。
[*]点击 Select Project > Properties > Flex Compiler。
[*]键入 “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"
[*]点击 OK 来保存您的变更。
[*]点击 OK 来关闭 Properties 对话框。
[*]编译您的 Flex 范例应用程序:
[*]打开 Flex Builder 中的 testMyApp.mxml 文件。
[*]这些输出文件是 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
[*]将批文件拷贝到与 .mxml 文件 (C:\FlexTutorial,您可以在这里存储样例应用程序,testMyApp.mxml) 相同的目录下。
[*]在命令提示下来到目录,用 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 目录下是可用的。
[*]将 runtimeloader.swf 文件和 runtimeLoadingTest.html 文件拷贝到 Web 服务器的根目录。例子使用了一个 Apache 服务器,因此您将要把这些组件拷贝到 apache\htdocs 目录。被测试的应用程序部署在相同的目录下。
[*]在样例中找到 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 应用程序上开始记录,您首先要激活和配置要测试的应用程序。
[*]选择 Functional Tester > Configure > Enable Environments for Testing。
[*]选择 Web Browsers 制表中的 Internet Explorer ,然后选择 Enable。
图 1. 激活 Internet Explorer 环境视图
http://fengxiangpiao.iteye.com/admin/blogs/figure1.jpg
[*]点击 Test,结果将会显示 “Passed”。
[*]在 Java Environments 下,选择 Javajre…. ,然后点击 Enable(图 2)。
图 2. 激活 Java/JRE 环境
http://fengxiangpiao.iteye.com/admin/blogs/figure2.jpg
[*]再次点击 Test ,您应该获取如图 3所显示的回应。
图 3. JRE Tester 结果信息
http://fengxiangpiao.iteye.com/admin/blogs/figure3.jpg
[*]要配置应用程序进行测试,选择 Functional Tester >Configure > Configure Applications for Testing
[*]在 Application Configuration 向导中,点击 Add (图 4)。
图 4. Application Confirmation Tool (向导)
http://fengxiangpiao.iteye.com/admin/blogs/figure4.jpg
[*]当您获得 Add Application 向导时,选择 HTML Application单选按钮并点击 Next(图 5)。
图 5. 选择应用程序
http://fengxiangpiao.iteye.com/admin/blogs/figure5.jpg
[*]在下一个屏幕上,选择 Local 单选按钮(图 6),然后点击 Browse 来寻找应用程序目录(在案例中是:C:\FlexTutorial)。
图 6. 选择本地 HTML 应用程序
http://fengxiangpiao.iteye.com/admin/blogs/figure6.jpg
注意:
当应用程序是由 Web 服务器托管时,您需要选择 URL 单选按钮(请看图 7),并提供应用程序的 URL 地址。在当前这种情形下,来自 Runtime Loader 的 URL 地址为:
http://localhost/RuntimeLoadingTest.html?automationswfurl=runtimeTestApp.swf
图 7. 托管应用程序的可选方法
http://fengxiangpiao.iteye.com/admin/blogs/figure7.jpg
[*]点击 Finish,在下一个向导中,点击 Apply 和 Finish 按钮。
您的应用程序现在已经配置好可以进行测试了。
回放脚本
[*]启动记录器,点击 Start Application,并从 Application Name 下拉列表中,选择您配置的应用程序(图 8)。
图 8. 启动 Application 视图
http://fengxiangpiao.iteye.com/admin/blogs/figure8.jpg
[*]当应用程序启动后,您可以使用这些控件来记录事件。
范例应用程序看起来如图 9所示。
图 9. 范例应用程序
http://fengxiangpiao.iteye.com/admin/blogs/figure9.jpg
图 10 显示了 Rational Functional Tester 记录的范例脚本。
图 10. 记录的脚本
http://fengxiangpiao.iteye.com/admin/blogs/figure10.jpg
[*]点击 Rational Functional Tester IDE 中的 Playback 按钮来执行脚本。
发现并修理故障
如果出现下面任何一个错误,您可以自己轻松地进行处理。
安全警告
当 Flex 应用程序启动后会弹出一个安全侵害提示(请看图 11)。
图 11. 错误提示和描述
http://fengxiangpiao.iteye.com/admin/blogs/figure11.jpg
确保您测试的 Flex 应用程序是从一个信任的文件夹中运行的。
[*]您可以将 OUT 目录添加到 FlashPlayerTrust 文件夹中的 Flex 文件中。
[*]您可以在 C:\Windows\System32\Macromed\Flash\ 目录下创建一个 FlashPlayerTrust 文件夹。
[*]创建一个 .txt 文件并天际被测试应用程序的路径到文件。
[*]将文件保存为 Flex,不带扩展名。
您可以添加目录的任何数字到 TXT 文件。例如,如果 testMyApp.swf 和 testMyApp.html 文件都在 C:\FlexTutorial 目录下,您可以添加路径到 Flex 文件中。在 资源 中的 Learn 部分可以找到更多详细的信息。
FlexPlugin Call Failed 警报
当应用程序从 localhost/IIS 服务器中运行时,您可以获得一个表明插件调用失败的提示(请看图 12)。
图 12. 调用失败通知
http://fengxiangpiao.iteye.com/admin/blogs/figure12.jpg
如果发生失败,请核查 Internet Explorer ActiveX 和插件的本地安全设置:
[*]打开 Internet Explorer。
[*]从菜单工具条中选择 Tools > Internet Options 。
[*]点击 Security 标签。
[*]选择合适的 Web 内容区域。例如,如果您在本地机器上安装了 Apache 或者 IIS,请选择 Local Intranet 。
[*]选择 Custom Level。
[*]从“Reset to”列表中,选择 Medium-low。
[*]在 “Initialize and script ActiveX controls not marked as safe” 下,点击 Enable 单选按钮。
[*]点击 OK。
应用程序页面没有显示
当应用程序托管在一个服务器上,并且应用程序页面没有正确地显示,确保服务器正在运行。
<!-- CMA ID: 354488 --><!-- Site ID: 10 --><!-- XSLT stylesheet used to transform this file:dw-article-6.0-beta.xsl -->
回页首
下载
描述
名字
大小
下载方法
示例应用程序
TestEnabledApp.zip
562KB
HTTP
测试应用程序
runtimeTestApp.zip
428KB
HTTP
页:
[1]