Flex Monkeyとは

Flex MonkeyはAdobeが提供するRIA技術であるFlex向けのUIテストツールだ。同種のツールとしてはWebアプリケーション向けのSeleniumなどが有名だ。Flex Monkeyを使用することでFlexアプリケーション(AIRアプリケーションも含む)の操作を記録し、表示結果の確認を自動化することができる。

なお、Flex Monkeyは米Gorilla Logicが開発するオープンソースソフトウェアで、ライセンスはGNU General Public License Version 2となっている。

Flex Monkeyのインストール

Flex MonkeyはAIRアプリケーションとして実装されており、こちらのページ[http://flexmonkey.gorillalogic.com/gl/stuff.flexmonkey.download.html]からインストールすることができる。AIRランタイムがインストールされていない場合は同時にインストールされる。また、初回起動時にはユーザ登録を行う必要がある。

図1 初回起動時にはユーザ登録が必要

ユーザ登録を行うとメールでアクティベーションキーが送られてくるのでこれを入力するとFlex Monkeyを利用できるようになる。

テストの作成方法

「File」メニューから「New Project」を選択し、Flex Monkeyのプロジェクトを作成するディレクトリを指定する。するとプロジェクトの情報を入力するためのダイアログが表示されるので、URL欄でテスト対象アプリケーションのswfファイルを指定しよう。

図2 プロジェクトの情報

続いてテストケースを作成する。Flex Monkeyのツールバーから「Record」ボタンをクリックするとアプリケーションの操作を記録することができる。検証を行うには「Add Verify」ボタンをクリックし、画面上から検証を行うコンポーネントを選択する。選択したコンポーネントのプロパティ一覧がダイアログで表示されるので、検証したいプロパティにチェックを入れればよい。

図3 Flex Monkeyのツールバー

図4 検証処理の追加

操作が終わったらもう一度「Record」ボタンをクリックし、記録を停止しよう。テストケースを実行するには「Play」ボタンをクリックすればよい。記録したテストケースが順次再生され、以下のように結果が表示されるはずだ。

図5 テストの実行結果

UIのテストでは、時間のかかる処理の場合、ボタンをクリックしてから検証処理を実行するまでの間にウェイト(待機時間)を取る必要がある場合も考えられる。このような場合はツールバーから「Add Pause」ボタンでテストケースの実行を指定時間だけ待機させることができる。

もちろん記録したテストケースをFlex Monkey上で修正することも可能だ。作成したテストケースはFlex Monkeyのプロジェクトフォルダ配下に以下のようなXMLファイルとして保存されている。それほど複雑なXMLではないので、テキストエディタで直接編集することも十分可能だろう。また、ActionScriptのソースコードを生成することも可能だ。

<TopNode>
  <TestSuite name="NewTestSuite">
    <TestCase name="NewTestCase">
      <Test name="NewTest" defaultThinkTime="500">
        <UIEvent command="Input" value="text" prop="automationName">
          <arg value="たけぞう"/>
        </UIEvent>
        <UIEvent command="Click" value="ボタン" prop="automationName">
          <arg value="0"/>
        </UIEvent>
        <Verify description="New Verify"
          snapshotURL="FBA09E42-8234-CE79-15A3-D482A8750CF7.snp"
          value="こんにちは、たけぞうさん!"
          prop="automationName" verifyBitmap="false">
          <Attribute name="text"
            expectedValue="こんにちは、たけぞうさん!"
            actualValue="こんにちは、たけぞうさん!"
            type="property"/>
        </Verify>
      </Test>
    </TestCase>
  </TestSuite>
</TopNode>

まとめ

Flex MonkeyはシンプルかつわかりやすいユーザインタフェースでFlexのUIテストを作成することができるため、すぐに使い始めることができるはずだ。Flexアプリケーションのテストに役立ててほしい。