ヘッダーをスキップ

Oracle® Functional Testing OpenScriptユーザーズ・ガイド バージョン9.20 B62630-01 |
| 目次 | 索引

戻る | 次へ |

# 12 Adobe Flex（AMF）負荷テスト・モジュールの使用

この章では、OpenScript Adobe Flex（AMF）負荷テスト・モジュールの設定および使用手順について説明します。このテスト・モジュールは、Adobe Flex（AMF）のWebアプリケーションの負荷テストをサポートします。

## 12.1 Adobe Flex（AMF）負荷テスト・モジュールについて

Adobe Flex（AMF）負荷テスト・モジュールは、Adobe Flex Action Message Format負荷テストの記録機能および再生機能を使用してWebテストを拡張するOpenScript HTTPモジュールの拡張モジュールです。Adobe Flex（AMF）負荷テスト・モジュールは、結果ビュー、詳細ビュー、プロパティ・ビュー、コンソール/問題ビュー、詳細設定、ステップ・グループ、スクリプト・マネージャおよびワークスペース・マネージャなどのOpenScriptプラットフォームと完全に統合されています。Adobe Flex（AMF）負荷テスト・モジュールには、次のような機能があります。

Adobe Flex（AMF）負荷テスト・レコーダによって、ツリー・ビューにわかりやすい形でコマンドが表示されます。デフォルトでは、スクリプト・コマンドが、実行されたWebページごとにステップ・グループに分類されます。各ステップ・グループには、ページで実行されて記録されたアクションに対応する1つ以上のスクリプト・コマンドが含まれています。ステップ・グループのデフォルト名は、Webページのタイトル（Titleタグで指定されています）またはFlexアプリケーションの操作名です。

OpenScriptによって、Adobe Flex（AMF）負荷テスト・スクリプトの再生結果が結果ビューに表示されます。結果ビューには各スクリプト・コマンドの結果が表示されます（経過時間や失敗のサマリーを含む）。結果レポートは同じ情報をHTMLフォーマットの結果レポートにコンパイルします。結果をOpenScript GUIから標準フォーマット（CSV / HTML）でエクスポートすることもできます。また、コマンドラインを通じた自動再生によっても結果は生成されます。

Adobe Flex（AMF）負荷テスト・モジュールAPIには、追加のプログラミング機能を提供するamfクラスが含まれています。

### 12.1.1 Adobe Flex（AMF）負荷テスト・モジュールの主な機能

- Adobe Flex（AMF）負荷テスト・スクリプト・モジュール。新規プロジェクト・ウィザード（「ファイル」メニューから「新規」を選択）には、OpenScriptでAdobe Flex（AMF）負荷テスト・プロジェクトを作成する際に使用する負荷テスト・グループにAdobe Flex（AMF）オプションが含まれます。Adobe Flex（AMF）負荷テスト・スクリプト・モジュールは、パラメータの編集が容易になるように、記録中にバイナリAMFストリームをXML/テキスト形式に変換してAdobe Flex（AMF）アプリケーションを記録します。XML/テキスト形式は、再生中にバイナリAMFストリームに変換されます。

- 相関ルール・ライブラリ。Adobe Flex（AMF）負荷テスト・モジュールには、スクリプトのパラメータ化に関するAdobe Flex（AMF）固有の相関ルールのライブラリが含まれています。

- テスト・ケース（検証）。Adobe Flex（AMF）負荷テスト・モジュールは、Adobe Flex AMFリクエストやテキスト・マッチング・テストを実行することも、また正規表現またはXPathによる変数を解析することもできます。

- Adobe Flex（AMF）固有のAPI（アプリケーション・プログラミング・インタフェース）。Adobe Flex（AMF）負荷テスト・モジュールには、Adobe Flex（AMF）固有スクリプトをカスタマイズする際に使用するAdobe Flex（AMF）負荷テスト・モジュールのAPI仕様が含まれています。

## 12.2 Adobe Flex（AMF）負荷テストの記録

Adobe Flex（AMF）負荷テスト・モジュールは、Action Message Format（AMF）を使用するAdobe FlexベースのWebアプリケーションを記録します。レコーダでは、Adobe Flex（AMF）アプリケーションのテストを自動化する負荷テスト・スクリプトが作成されます。

Adobe Flexは、Adobe Flashプラットフォームに基づいてクロス・プラットフォームのリッチなインターネット・アプリケーションを開発およびデプロイすることを目的にAdobe Systemsが公開しているテクノロジの集合です。OpenScript Adobe Flex（AMF）負荷テスト・モジュールは、バイナリAMFを取得してストリームを人間にも読みやすいXMLに変換し、それらのコントロールとの相互作用を記録します。アクションは、OpenScriptのamfコマンドとして、テスト・スクリプト内に取得されます。その他のコンポーネントは、標準のOpenScriptのhttpナビゲーション・コマンドとして取得される標準のWebコントロールです。相関ルールは、新規スクリプトの詳細設定の設定を使用して変更できます。

Adobe Flex（AMF）負荷テスト・モジュールには記録ツールバー・ボタンがあり、ユーザーはこれを使用してAdobe Flex（AMF）レコーダを開始し、Web/Adobe Flex（AMF）ページ・アクションをスクリプト・ビューに取得することができます。記録ツールバーには、記録の開始および停止のツールバー・ボタンがあります。OpenScriptレコーダでは、記録中にブラウザとOpenScriptを切り替えることなく使用できるフローティング・ツールバーも開きます。

### 12.2.1 Adobe Flex（AMF）負荷テスト・スクリプトの記録

Adobe Flex（AMF）負荷テスト・スクリプトを記録するには、次のようにします。

1. OpenScriptを起動します。

2. Adobe Flex（AMF）負荷テストの相関詳細設定を設定します。

3. 「ファイル」メニューから「新規」を選択します。

4. 負荷テスト・グループを開きます。

5. 「Adobe Flex (AMF)」を選択します（Adobe Flex（AMF）スクリプトは、HTTPとAdobe Flex（AMF）の両方のテクノロジを同じスクリプトの一部として組み合せます）。

6. 「次へ」をクリックします。

7. リポジトリとワークスペースを選択します。

8. スクリプト名を入力します。

9. 「終了」をクリックします。新規スクリプト・ツリーがスクリプト・ビューに作成されます。

10. 「スクリプト」メニューから「記録」を選択します。記録を開始すると、ブラウザが自動的に開きます。

11. 記録を開始するWebページをブラウザにロードします。

12. ページ・オブジェクト、アクションおよびナビゲーションを記録するWebサイトにアクセスします。ページ・オブジェクト、アクションおよびナビゲーションは、スクリプト・ツリーうち、「記録セクション指定」設定で指定したノード（デフォルトは「Run」ノード）に追加されます。

13. ページのナビゲーションが終了したら、ブラウザを閉じてください。

14. 「スクリプト」メニューから「停止」を選択するか、OpenScriptツールバーの「停止」ボタンをクリックします。

15. スクリプトの「Run」ノードを開いて、スクリプト・ツリーのページ・オブジェクト、アクションおよびナビゲーションのノードを表示します。

    特定のテスト要件実現のために、メニュー・オプションまたはコード・ビューを使用してスクリプトをカスタマイズすることができます。

    注意: 記録中またはスクリプトの再生中に、スクリプト・エディタ・ビューまたはスクリプト・プロジェクトを閉じないでください。閉じると、OpenScriptアプリケーションで予期しない動作が発生する場合があります。

## 12.3 スクリプトの再生

OpenScriptでは、サーバーに送信する前にXML POSTメッセージ（`amf.post("``description``", "``urlPath``", "``postMessageXML``");`）を変換してバイナリ・ストリームに戻すことによって、記録されたAdobe Flex（AMF）リクエストを再生します。再生に使用されるアクションは、記録されたアクションまたはJavaコード・ビューで手動で指定されたアクションのいずれかです。自動再生は、OpenScriptのコマンドライン・インタフェースを使用し、Oracle Test Managerまたはサード・パーティ・ツールを介してサポートされます。

Adobe Flex（AMF）負荷テスト・モジュールには再生ツールバー・ボタンと反復ツールバー・ボタンがあり、ユーザーはこれらを使用してスクリプトの再生を開始することができます。再生は、スクリプトを通じて一度のみ行うか、データバンク・ファイルのデータを使用して何度も反復することが可能です。Adobe Flex（AMF）負荷スクリプトの再生結果は、「結果」ビューと「コンソール」ビューで確認できます。

### 12.3.1 Adobe Flex（AMF）負荷スクリプトの再生

Adobe Flex（AMF）負荷スクリプトを再生するには、次のようにします。

1. OpenScriptを起動します。

2. 再生するAdobe Flex（AMF）負荷スクリプトを開きます。

3. 「スクリプト」メニューの「再生」を選択するか、ツールバーのボタンをクリックします。

   コンソール・ビューでスクリプト再生の進捗状況を確認できます。結果ビューでスクリプト再生の結果を確認できます。

### 12.3.2 Adobe Flex（AMF）負荷スクリプトを反復して再生

Adobe Flex（AMF）負荷スクリプトを反復再生するには、次のようにします。

1. OpenScriptを起動します。

2. 再生するAdobe Flex（AMF）負荷スクリプトを開きます。

3. 「スクリプト」メニューから「反復」を選択するか、ツールバー・ボタンをクリックします。

4. 「データバンクを使用」を選択します。

5. スクリプトに複数のデータベースが設定されている場合には、設定を指定するデータバンク・ファイルを選択します。

6. データバンク・ファイルの設定を指定します。

7. 再生を停止する反復数オプションを選択し、任意の再生の反復回数を指定します。反復設定の詳細は、4.5項「スクリプトを反復して再生」を参照してください。

8. 「OK」をクリックします。

   コンソール・ビューでスクリプト再生の進捗状況を確認できます。結果ビューでスクリプト再生の結果を確認できます。

## 12.4 スクリプトの変更

スクリプトを作成あるい記録したら、テスト上の必要に応じてスクリプトに変更を加え、カスタマイズすることができます。

### 12.4.1 Adobe Flex（AMF）負荷アクションの追加

Adobe Flex（AMF）負荷モジュールには、スクリプトに追加できるAdobe Flex（AMF）リクエストのアクションが含まれています。

Adobe Flex（AMF）負荷アクションをスクリプトに追加するには、次のようにします。

1. Adobe Flex（AMF）負荷テスト・スクリプトを記録します。

2. アクションを追加するスクリプト・ノードを選択します。

3. 「スクリプト」メニューを選択した後、「追加」サブメニューから「その他」を選択します。

4. 「Flex 負荷テスト (AMF)」ノードを開きます。

5. アクション・ノードを開いてアクションを選択します。

6. 「OK」をクリックします。

7. オブジェクトに対するオブジェクト識別パスを入力します。「キャプチャ」または「選択」のメニュー・オプションを使用して、オブジェクト・パスを取得または選択できます。

8. オブジェクト・アクションに使用する必要な値を入力します。

9. 「OK」をクリックします。

10. AMFリクエストについて、リクエストの説明、URL、XML POSTメッセージを入力します。

11. 「OK」をクリックします。アクション・ノードがスクリプト・ツリーに追加されます。

    Javaコード・ビューで、`amf.post("``description``", "``urlPath``", "``postMessageXML``")`メソッドがスクリプト・コードに追加されます（わかりやすいように改行とスペースが追加されています）。

        amf.post("Click the button", "http://oracle-xyz:8080/openamf/gateway",
         "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n
         <amf version=\"0\">
          <headers><header name=\"amf_server_debug\" required=\"true\">
           <asobject type=\"NetDebugConfig\">
            <entry key=\"m_debug\" type=\"boolean\">true</entry>
            <entry key=\"coldfusion\" type=\"boolean\">true</entry>
            <entry key=\"error\" type=\"boolean\">true</entry>
            <entry key=\"amf\" type=\"boolean\">false</entry>
            <entry key=\"trace\" type=\"boolean\">true</entry>
            <entry key=\"httpheaders\" type=\"boolean\">false</entry>
            <entry key=\"recordset\" type=\"boolean\">true</entry>
            <entry key=\"amfheaders\" type=\"boolean\">false</entry>
           </asobject>
          </header></headers>
          <bodies>
           <body operation=\"org.openamf.examples.Test3.getNumber\" response=\"/1\">
            <list><item type=\"double\">123.456</item></list>
           </body>
          </bodies>
         </amf>");

### 12.4.2 Adobe Flex（AMF）負荷テスト・モジュールAPIの使用

Adobe Flex（AMF）負荷テスト・モジュールには、Adobe Flex（AMF）負荷テストに固有のスクリプトのAPI（アプリケーション・プログラミング・インタフェース）が含まれています。Adobe Flex（AMF）負荷テスト・モジュールのレコーダでは、ツリー・ビューに対応するJavaコードを作成し、Adobe Flex（AMF）負荷テスト・コマンドをわかりやすい機能名でJavaコード・ビューに表示します。Javaコード・ビューのコマンドはツリー・ビューに対応しており、どちらのビューでもスクリプトを編集できます。

Adobe Flex（AMF）負荷テストAPIを使用し、記録されたスクリプトを強化してテスト機能を追加できます。Adobe Flex（AMF）負荷テスト・モジュールに固有のコマンドは、amfクラスの一部です。追加のテスト・メソッドは、httpクラスにあります。その他の使用可能なクラス（サービス）のコマンドを利用したり、スクリプトでJavaコマンドを生成したりすることもできます。

Adobe Flex（AMF）のテスト・モジュールAPIには、次のものなどが含まれています。

- AMFリクエスト（POST）

- テキストマッチングテスト

- 正規表現変数の解析

- XPath変数の解析

Adobe Flex（AMF）負荷テスト・モジュールのツリー・ビューを使用して、多数のAPIメソッドを追加できます。Javaコード・ビューを使用してさらにメソッドを追加することができます。使用できるプロシージャ一覧のインテリジェンス・ウィンドウを開くには、[Ctrl]キーを押しながら[Space]キーを押します。その他のプログラミング情報の詳細は、OpenScriptヘルプのAPIリファレンスを参照してください。

## 12.5 Adobe Flex（AMF）負荷テストの相関詳細設定の設定

Adobe Flex（AMF）負荷テストの相関詳細設定を設定するには、次のようにします。

1. OpenScriptを起動します。

2. 「ビュー」メニューから「OpenScript 詳細設定」を選択します。

3. 「OpenScript」ノード配下の「相関」カテゴリを開きます。

4. Adobe Flex LT (AMF)を選択します。

5. Adobe Flex（AMF）負荷テスト・ライブラリを開きます。

6. チェック・ボックスを選択または選択解除して、各ルールを有効または無効にします。

7. 「追加」または「編集」ボタンをクリックして、ライブラリ内のルールを修正します。

8. 「OK」をクリックします。

## 12.6 Adobe Flex（AMF）負荷テスト相関ルール・ライブラリ

Adobe Flex（AMF）負荷テスト・モジュールには、スクリプト記録中にAdobe Flex（AMF）パラメータを自動的に認識してこのパラメータをOpenScript変数および関数に置換する相関ルール・ライブラリが含まれています。スクリプト・ノードには、ページ・ナビゲーションに含まれるAdobe Flex（AMF）エンティティが表示されます。Adobe Flex（AMF）負荷テスト・レコーダは、負荷テストのAdobe Flex（AMF）エンティティを自動的に認識してパラメータ化します。

スクリプト・ツリー・ビューには、Adobe Flex（AMF）の操作について記録されている説明が表示されます。Javaコード・ビューには、AMFリクエストのPOSTパラメータが表示されます。例:

    amf.solve("flex.dsid","<entry key=\"DSId\" type=\"string\">(.+?)</entry>",
      "DSId is a required field", false, AmfSource.Content, 0, null);

    amf.post(10,"Operation('todoService.getList')",
     "http://oracle-xyz:8080/todolist-web/messagebroker/amf",
     "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n
      <amf version=\"3\">
      <headers />
       <bodies>
        <body operation=\"null\" response=\"/2\">
         <list>
          <item type=\"object\">
           <flex.messaging.messages.RemotingMessage>
            <body type=\"object\"><list /></body>
            <clientId type=\"object\" isNull=\"true\" />
            <correlationId type=\"object\" isNull=\"true\" />
            <destination type=\"string\">todoService</destination>
            <headers type=\"object\">
             <map>
              <entry key=\"DSId\" type=\"string\">
                {{flex.dsid,FC6E956E-1309-78B0-B487-BB01891A57DD}}</entry>
              <entry key=\"DSEndpoint\" type=\"string\">channel-amf</entry>
             </map>
            </headers>
            <messageId type=\"string\">{{@guid()}}</messageId>
            <operation type=\"string\">getList</operation>
            <source type=\"string\" />
            <timeToLive type=\"int\">0.0</timeToLive>
            <timestamp type=\"int\">0.0</timestamp>
           </flex.messaging.messages.RemotingMessage>
          </item>
         </list>
        </body>
       </bodies>
      </amf>");

Adobe Flex（AMF）負荷テストのOpenScript相関ルール・ライブラリの詳細設定を使用して、ライブラリおよびルールを追加できます。

Adobe Flex（AMF）相関ルール・ライブラリでは、Adobe Flex（AMF）ベースのアプリケーションの相関ルールが定義されます。相関ルールにより、Adobe Flex（AMF）アプリケーションおよびナビゲーションの動的データの置換に使用される変数名と正規表現が指定されます。OpenScript Adobe Flex（AMF）負荷テスト・モジュールに提供されているデフォルトのAdobe Flex（AMF）相関ルール・ライブラリには、次の相関ルールが含まれています。

- JavaセッションID - 変数置換: 正規表現パターン`jsessionid=(.+?)(?:"|&;)`に一致するHTML内のテキストを検出し、すべての場所で変数名`http.jsessionid`と置き換えます。

- Web DOM相関 - DOM相関: Adobe Flex（AMF）アプリケーションのデフォルトのWebドキュメント・オブジェクト・モデル相関ルールを実装します。

- クライアントSet Cookie - クライアントSet Cookie: 動的データを持つWebページのCookieオブジェクトが自動的に変換されます。

- ヘッダーの相関 - ヘッダーの相関: 動的データを持つWebページのヘッダー・オブジェクトが自動的に変換されます。

- タイムスタンプ - 関数/テキスト置換: 正規表現パターン`timestamp=((\d{13,}))`に一致するHTML内のテキストを検出し、指定の場所の`{{@timestamp}}`関数と置き換えます。

- Cookie ヘッダーの相関 - Cookie ヘッダーの相関: 動的データを持つWebページのCookieヘッダー・オブジェクトが自動的に変換されます。

- 相関先ID - 変数置換: 正規表現パターン`<entry key="DSId" type="string">(.+?)</entry>`に一致するHTML内のテキストを検出し、すべての場所で変数名`flex.dsid`と置き換えます。

- メッセージID - 関数/テキスト置換: 正規表現パターン`<messageId type="string">((.+?))</messageId>`に一致するHTML内のテキストを検出し、指定の場所で`{{@guid}}`関数と置き換えます。