Flash/Flex testing | Ranorex
Help CenterUser GuideInterfaces and connectivity

Flash/Flex/Air

Ranorex Studio の Flash/Flex/Air plugin は、これらのアプリケーションをコントロールするためのインターフェースを提供します。これにより、Flash/Flex/Air の UI 要素を識別できます。

しかしながら、これらのテクノロジーでは、いくつかの手動でのインストルメントが必要です。Flash/Flex は多くの場合、インストルメント ウィザードによるインストルメントがおこなえますが、Air では手動でのインストルメントが必要です。

前提条件

Flash/Flex アプリケーションのオートメーションでは、Ranorex Flex Automation Lib を組み込む必要があります。

Automation Lib をロードする方法

以下いずれかのインストルメント方法を選択できます。

⇢ PreLoader (推奨)

Ranorex PreLoader を使用すると、アプリケーション自体を修正せずに Flash/Flex アプリケーションのオートメーションが可能になります。

⇢ Automation Lib

AutomationLib swc ファイルを、対象の Flash/Flex アプリケーションに組み込む必要があります。(コンパイラ引数の追加によって)

  • オートメーション ライブラリはバックグラウンドでロードされる (Flash/Flex アプリケーションの機能に影響を及ぼさない)
  • Web サイトに対する修正は不要

⇢ Module

コード スニペットを ⇢ ACTIONS (Flash の場合) または ⇢ ‘applicationCompleteHandler’ 関数 (Flex の場合) に追加し、swf ファイルをロードする必要があります。

  • モジュールはバックグラウンドでロードされる (Flash/Flex アプリケーションの機能に影響を及ぼさない)
  • Web サイトに対する修正は不要
  • モジュールの swf を Web サーバーにコピーする必要あり

以下の表に、サポートされているバージョンの Flash/Flex でそれぞれ使用可能なインストルメント オプションを示します。

Flash Flex AIR*
 CS3 CS4 CS5 3.x 4.x 2.x 3.x 4.x
Preloader
Automation Lib
Module      

* Flex 3.5 と Flex 4 リリースとの組み合わせでの Adobe AIR 2 リリースのサポート

  = supported /   = recommended

属性とスタイルを読み取る/設定する方法

一般的な属性 (チェックボックスのオン/オフ状態など) を直接読み取る/設定するには、以下のように、アダプターを使用します。
// Load the slider as a Flex element to access flex attributes 
FlexElement sliderFlex = repo.FlexTestPageDom.ContainerHSlider_Control.SliderHSlider.As(); 
sliderFlex["value"] = "100"; 
 
FlexElement containerFlex = repo.FlexTestPageDom.Self.FindSingle(".//container[@caption='Tree Control']"); 
containerFlex.SetStyle("borderColor","#ee0000");

カスタムの属性とスタイルにアクセスするには、まず、Flex アイテムを FlexElement としてロードして属性を読み取る必要があります。以下に例を示します。

// Load the slider as a Flex element to access flex attributes 
FlexElement sliderFlex = repo.FlexTestPageDom.ContainerHSlider_Control.SliderHSlider.As(); 
sliderFlex["value"] = "100"; 
 
FlexElement containerFlex = repo.FlexTestPageDom.Self.FindSingle(".//container[@caption='Tree Control']"); 
containerFlex.SetStyle("borderColor","#ee0000");

Ranorex PreLoader の使用

⇢ インストルメント ウィザード を使用すると、マシンでの Flash/Flex オートメーションが自動的に有効になります。

自動インストルメントが正常に動作しない場合は、以下のステップにしたがって、インストルメント ウィザードを使用した場合と同様の設定をおこなうことができます。

レコーディングと Ranorex テストを実行するマシン上で、テストに使用するすべてのブラウザー用に Adobe Debug Flash Player をインストールします。インストーラーは、Adobe’s download page からダウンロードできます。
Windows エクスプローラーを開き、文字列 %UserProfile% をアドレス バーにコピーして、ユーザー プロファイル ディレクトリ %UserProfile% を開きます。’mm.cfg’ という名前の新しいファイルをこのディレクトリに作成し、以下のコード行を挿入します。

C:\Program Files\Ranorex X.X\Bin\RanorexAutomation.swf

上記のパスは、Ranorex インストール フォルダーにある PreLoader の実際のパスに置き換えてください。’mm.cfg’ ファイルがすでに存在する場合は、その場所が現在の PreLoader の場所に正しく設定されているかチェックします (Ranorex をアップグレードしていると、Ranorex X.X の部分は変更されるはずです)。この設定に加えて、Adobe Debug Flash Player のロギング機能を有効化することもできます。ロギング機能は、インストルメントで何らかの問題が発生した場合に役立ちます。有効化するには、’mm.cfg’ ファイルに以下のコード行を追加 (または修正) する必要があります。

TraceOutputFileEnable=1

この設定を追加すると、Debug Player は以下の場所にログ ファイルを生成します。

C:\Users\[username]\AppData\Roaming\Macromedia Flash Player\Logs

[username] の部分は、ログオンしているユーザー名に置き換えてください。

ローカル ドライブからアプリケーションを実行している場合は、以下のように、Flash Player の ‘信頼されている場所設定’ に、出力ディレクトリを追加します

  1. http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065 を開きます。
  2. プロジェクトの出力ディレクトリを追加します。

Adobe Flex: Flex アプリへの Ranorex Lib のロード

Adobe Flex Builder を起動し、ワークスペースを開きます。

プロジェクトを右クリックして、プロパティを選択します。

Flex コンパイラで、次のように、Ranorex インストールの Bin ディレクトリに配置されている RanorexAutomation.swc ファイル をコンパイラ引数に追加します。

-include-libraries "C:/Program Files/Ranorex X.X/Bin/RanorexAutomation.swc"

以下のコードを ‘applicationCompleteHandler’ 関数に追加します。

import Ranorex.RxAutomation; 
RxAutomation.Init();

アプリケーションを保存してコンパイルします。

サポートされているブラウザー (Internet Explorer、Firefox、Chrome、Safari) でアプリケーションを実行します。

ローカル ドライブから Flex アプリケーションを実行している場合は、 Flash Player の ‘信頼されている場所設定’ に、出力ディレクトリを追加します。

  1. http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065 を開きます。
  2. プロジェクトの出力ディレクトリを追加します。

Adobe Flash: Flash アプリへの Ranorex Lib のロード

Adobe Flash CS4/CS5 を起動し、アプリケーションを開きます。

‘パブリッシュ設定’ ダイアログを開きます。(ファイル > パブリッシュ設定)

Flash アプリケーションで、Flash > スクリプト > 設定 > ライブラリ パス の順に選択して Ranorex Flash Library を挿入し、’SWC ファイルを参照’ を選択します。

ブラウザー ダイアログで ‘RanorexAutomation.swc’ ファイルを選択します。RanorexAutomation.swc は Ranorex インストールの Bin ディレクトリに配置されています。
以下のコードを 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); 
 } 
}

サポートされているブラウザー (Internet Explorer、Firefox、Chrome、Safari) でアプリケーションを実行します。

ローカル ドライブから Flash アプリケーションを実行している場合は、次に示すように、 Flash Player の ‘信頼されている場所設定’ に、出力ディレクトリを追加します。

  1. http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065 を開きます。
  2. プロジェクトの出力ディレクトリを追加します。

Flash アプリに Ranorex Module をロードする方法

Adobe Flash CS3/CS4/CS5 を起動し、アプリケーションを開きます。

以下のコードを ACTIONS に挿入します。(F9 キー押下)

import flash.net.URLRequest; 
var rxloader : Loader = new Loader(); 
stage.addChild(rxloader); 
rxloader.name = "__rxloader"; 
rxloader.width = 0; rxloader.height = 0; 
rxloader.load(new URLRequest("RanorexAutomation.swf"));

Ranorex インストールの Bin ディレクトリに配置されている RanorexAutomation.swf ファイルを、ユーザーの .swf ファイルが配置されている Web サーバーにコピーします。

サポートされているブラウザー (Internet Explorer、Firefox、Chrome、Safari) でアプリケーションを実行します。

ローカル ドライブから Flash アプリケーションを実行している場合は、次に示すように、 Flash Player の ‘信頼されている場所設定’ に、出力ディレクトリを追加します。

  1. http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065 を開きます。
  2. プロジェクトの出力ディレクトリを追加します。

Flex/AIR アプリに Ranorex Module をロードする方法

Adobe Flash Builder を起動し、ワークスペースを開きます。

以下のコードを ‘applicationCompleteHandler’ 関数または初期化コードに追加します。

Flex 3 の場合:

var rxloader : Loader = new Loader(); 
Application.application.rawChildren.addChild(rxloader); 
rxloader.name = "__rxloader"; 
rxloader.width = 0; rxloader.height = 0; 
rxloader.load(new URLRequest("RanorexAutomation.swf"));

Flex 4 の場合:

var rxloader : Loader = new Loader(); 
FlexGlobals.topLevelApplication.parent.addChild(rxloader); 
rxloader.name = "__rxloader"; 
rxloader.width = 0; rxloader.height = 0; 
rxloader.load(new URLRequest("RanorexAutomation.swf"));

Ranorex インストールの Bin ディレクトリに配置されている RanorexAutomation.swf ファイルを ユーザーの .swf ファイルが配置されている Web サーバーまたは AIR アプリケーションの配置場所にコピーします。

サポートされているブラウザー (Internet Explorer、Firefox、Chrome、Safari) でアプリケーションを実行します。

ローカル ドライブから Flash アプリケーションを実行している場合は、次に示すように、 Flash Player の ‘信頼されている場所設定’ に、出力ディレクトリを追加します。

  1. http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065 を開きます。
  2. プロジェクトの出力ディレクトリを追加します。

トラブルシューティング

Flash/Flex/Air アプリをインストルメントしても、Ranorex Studio で UI 要素を識別できない場合には、以下を確認ください。

AllowScriptAccess パラメーターの問題

SWF ファイルをロードする HTML コードの AllowScriptAccess パラメーターは、SWF ファイル内から、その外部への URL アクセスを実行する機能を制御しています。

解決方法: PARAM および EMBED タグにあるこのパラメーターを ‘always’ に設定してください。

テスト対象アプリが複数回インストルメントされている

対象の Flash/Flex アプリが、Ranorex Studio によって提供されているバージョンとは異なるバージョンの Flash コンポーネントで、複数回インストルメントされています。

解決方法: インストルメントされていないバージョンのアプリに戻し、このセクションで説明されているインストルメント方法のいずれかひとつだけを使用してインストルメントしてください。