Flash/Flex测试

Flash/Flex 自动测试插件 为Ranorex自动测试框架及其工具提供了平滑的集成。你可以使用RanoreXPath轻易地过滤,访问和验证Flex控件. 你对Flash和Flex元素的所有属性都可以进行访问。

 

先决条件

自动化Flash/Flex应用需要包含Ranorex Flex Automation Lib.

  • 使用Ranorex PreLoader

例子

一个flash/flex 测试的例子项目已经在Ranorex安装包里面包含了,你可以在ranorex studio启动页中看到。How to read/set attributes and styles

加载Automation Lib的方法

根据你的flash/flex应用的不同,你可以选择下面一种调制方法:

PreLoader (推荐)

Ranorex PreLoader 使得不用更改你的应用就可以进行flash/flex应用的自动测试。

  • 使用调制向导自动安装
  • 不用更改你的应用
  • Adobe Flash Debug Player 需要在运行时机器上安装

Automation Lib

AutomationLib swc 文件需要被包含到你的flash/flex 应用 (通过添加编译器参数).

  • AutomationLib 会在后台加载 (将不会影响你的flash/flex应用的功能)
  • 不需要更改你的网页

Module

Module swf 文件加载需要添加一些代码到你的ACTIONS (for flash) 或者到你的‘applicationCompleteHandler’ function (for flex).

  • Module 会在后台被加载 (将不会影响你的flash/flex应用的功能)
  • 不需要更改你的网页
  • Module swf 需要拷贝到你的 web服务器

下面的表格展示了对各种版本flash/flex进行技术调制的可用选项

 

Flash Flex AIR*
CS3 CS4 CS5 3.X 4.X 2.X 3.X
PreLoader Supported Supported Supported Supported Supported
Automation Lib Supported Supported Supported Supported Supported Supported
Module Supported Supported Supported Supported Supported Supported Supported

* Support for Adobe AIR 2 Release in combination with Flex 3.5 and Flex 4 Release

 

Supported = supported
Recommended = recommended

 

Ranorex自动化测试Flash/Flex 控件

通过ranorex spy可以很容易看到flash/flex的结构. 所有的嵌入的flash或者flex元素都会在树视图中显示为一个flex元素.

使用Ranorex Recorder 在所有支持的浏览器中自动化 Flash/Flex 应用 (Internet Explorer, Firefox, Chrome 和 Safari). 你可以添加用户代码的动作到你的录制中从而访问自定义的flex属性.

flex-testing-f3

图:自动化 Flash/Flex 应用

如何读写属性和样式

你可以直接通过使用如下这样的adapter来读写普通属性 (例如,checkbox的状态):

  1. // Set the checked state with the property “Checked”
  2. repo.FlexTestPageDom.CheckBox_Control_Example.CheckBoxEggs.Checked = true;

访问普通属性和样式,你首先需要加载你的flex条目为FlexElement以便读取你的属性。这里有一个例子:

  1. // Load the slider as a Flex element to access flex attributes
  2. FlexElement sliderFlex = repo.FlexTestPageDom.ContainerHSlider_Control.SliderHSlider.As<flexelement>();
  3. sliderFlex[“value”] = “100”;
  4. FlexElement containerFlex = repo.FlexTestPageDom.Self.FindSingle(“.//container[@caption=’Tree Control’]”);
  5. containerFlex.SetStyle(“borderColor”,”#ee0000″);
  6. </flexelement>

使用Ranorex PreLoader

请按安装向导的提示,在您的电脑启用PreLoader。

 10-64

图:Flash/Flex 调制向导

 

按照向导来执行以下步骤:

1 在安装有Adobe Debug Flash Player的电脑上,你可以在所有的浏览器上对Ranorex 脚本进行录制和执行。Adobe的下载页可以下载安装程序;下面的链接可以下载针对Internet Explorer(Windows 8 x86和Windows 8 x64)/Firefox /chrome/ Safari等浏览器的the Debug Player工具。

2 打开你的用户配置文件目录%USERPROFILE%,例如:打开Windows资源管理器,并且把字符串%UserProfile%复制到地址栏里。

3 在你的用户配置文件目录中创建一个名为‘mm.cfg’的文件,并插入下面这行代码,其中“ C:\FlashFlex\RanorexAutomation.swf ‘需要替换到你的Ranorex安装目录下:

PreloadSwf= C:\Program Files\Ranorex 3.X\Bin\RanorexAutomation.swf

你可以通过附加项的设置来启用Adobe Debug Flash Player的日志记录,如果出现各种问题,日志记录是非常有用的。在这种情况下,你可以把日志记录给我们的支持团队。要启用日志记录,你必须添加以下代码行到你的‘mm.cfg’的文件里:

TraceOutputFileEnable=1

该附加配置项会强制Debug Player在C:\Users\username\AppData\Roaming\Macromedia\Flash Player\Logs中创建日志文件

4 如果你的程序是在本地驱动器上运行的,添加输出目录到Flash Player的受信位置,如下所示:

1.打开下面这个链接
http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065

2. 添加你的项目输出目录

Adobe Flex:加载Ranorex类库到你的Flex应用程序中

1.启动Adobe Flex Builder并且打开你的工作空间

2.右键单击你的项目,并选择“属性”

3. 在Flex编译器中添加Ranorex的Automation.swc文件(位于你安装的Ranorex的Bin目录下),编译参数如下:

-include-libraries “C:\Program Files\Ranorex 3.X\Bin\RanorexAutomation.swc”

4. 对于 AIR2: 将下列代码追加到你的 ‘applicationCompleteHandler’ 函数:

import Ranorex.RxAutomation;

RxAutomation.Init();

5 保存并编译你的程序

6  在支持你的应用程序的浏览器中(Internet Explorer, Firefox, Chrome, Safari)运行

7 如果你是从本地驱动器运行你的Flex程序,需要把Flash Player的输出目录添加到受信任的位置,如下:

1. 打开下面这个链接
http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065

2. 添加你的项目输出目录

Adobe Flash:把Ranorex类库加载到你的Flash应用程序中

1 运行Adobe Flash CS4/CS5并打开你的应用程序

2  打开“Publish Settings”对话框(File->Publish Settings)

3  把Ranorex Flash Library放到你的Flash应用程序下

Flash->Script->Settings…->Library Path 并且选择 ‘Browse to SWC file’

4 在浏览器对话框中选择“ Ranorex Automation.swc ‘文件,( RanorexAutomation.swc位于你安装Ranorex的Bin目录下)

5 把下面的代码插入到你的ACTIONS里(通过按键 F9):

import Ranorex.RxAutomation;

RxAutomation.InitFromApp(stage);

  或把下面的代码添加到你的ActionScript源文件里:

import mx.controls.*;

import flash.events.*;

import flash.display.*;

import flash.ui.Keyboard;

import flash.geom.Rectangle;

import fl.events.SliderEvent;

// Add Ranorex library

import Ranorex.RxAutomation;

public class Simple extends MovieClip

{

  public function Simple()

{

       // Add to your constructor

      RxAutomation.InitFromApp(stage);

      }

}

6 运行支持你的应用程序对应的浏览器(Internet Explorer, Firefox, Chrome, Safari)

7.如果你是从本地驱动器运行你的应用程序,需要把Flash Player的输出目录添加到受信任的位置,如下:

1.打开这个链接

http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065

2.添加你的项目输出路径

如何加载Ranorex Module 到你的Flash 应用

  1. 启动 Adobe Flash CS3/CS4/CS5 并且打开你的应用
  2. 将下列代码添加到你的ACTIONS (按F9):
    1. import flash.net.URLRequest;
    2. var rxloader : Loader = new Loader();
    3. stage.addChild(rxloader);
    4. rxloader.name = “__rxloader”;
    5. rxloader.width = 0; rxloader.height = 0;
    6. rxloader.load(new URLRequest(“RanorexAutomation.swf”));
  3. 拷贝RanorexAutomation.swf 文件, 它在你Ranorex安装目录的Bin 目录下,到你的web服务器上 ( .swf 文件所在处)
  4. 在支持的浏览器中运行你的应用 (Internet Explorer, Firefox, Chrome, Safari)
  5. 如果你从本地驱动器运行你的flash应用,添加你的输出目录到flash player信任的位置,如下:
    1. 打开下面的链接 http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065
    2. 添加你的项目输出目录

如何加载Ranorex Module 到你的Flex/AIR 应用

  1. 启动 Adobe Flex Builder 或者 Flash Builder ,并且打开你的workspace
  2. 添加下列代码到你的’applicationCompleteHandler’ 函数或者初始化代码中:
    对于 Flex 3:

    1. var rxloader : Loader = new Loader();
    2. Application.application.rawChildren.addChild(rxloader);
    3. rxloader.name = “__rxloader”;
    4. rxloader.width = 0; rxloader.height = 0;
    5. rxloader.load(new URLRequest(“RanorexAutomation.swf”));

对于 Flex 4:

    1. var rxloader : Loader = new Loader();
    2. FlexGlobals.topLevelApplication.parent.addChild(rxloader);
    3. rxloader.name = “__rxloader”;
    4. rxloader.width = 0; rxloader.height = 0;
    5. rxloader.load(new URLRequest(“RanorexAutomation.swf”));
  1. 拷贝RanorexAutomation.swf 文件, 它在你Ranorex安装目录的Bin 目录下,到你的web服务器上 ( .swf 文件所在处) 或者你的AIR应用所在的地方.
  2. 在支持的浏览器中运行你的应用 (Internet Explorer, Firefox, Chrome, Safari)
  3. 如果你从本地驱动器运行你的flash应用,添加你的输出目录到flash player信任的位置,如下:
    1. 打开下面的链接 http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065
    2. 添加你的项目输出目录

Leave a comment

请输入正确的验证码