この章では、OpenScript Adobe Flex(AMF)負荷テスト・モジュールの設定および使用手順について説明します。このテスト・モジュールは、Adobe Flex(AMF)のWebアプリケーションの負荷テストをサポートします。
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クラスが含まれています。
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仕様が含まれています。
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を切り替えることなく使用できるフローティング・ツールバーも開きます。
Adobe Flex(AMF)負荷テスト・スクリプトを記録するには、次のようにします。
OpenScriptを起動します。
Adobe Flex(AMF)負荷テストの相関詳細設定を設定します。
「ファイル」メニューから「新規」を選択します。
負荷テスト・グループを開きます。
「Adobe Flex (AMF)」を選択します(Adobe Flex(AMF)スクリプトは、HTTPとAdobe Flex(AMF)の両方のテクノロジを同じスクリプトの一部として組み合せます)。
「次へ」をクリックします。
リポジトリとワークスペースを選択します。
スクリプト名を入力します。
「終了」をクリックします。新規スクリプト・ツリーがスクリプト・ビューに作成されます。
「スクリプト」メニューから「記録」を選択します。記録を開始すると、ブラウザが自動的に開きます。
記録を開始するWebページをブラウザにロードします。
ページ・オブジェクト、アクションおよびナビゲーションを記録するWebサイトにアクセスします。ページ・オブジェクト、アクションおよびナビゲーションは、スクリプト・ツリーうち、「記録セクション指定」設定で指定したノード(デフォルトは「Run」ノード)に追加されます。
ページのナビゲーションが終了したら、ブラウザを閉じてください。
「スクリプト」メニューから「停止」を選択するか、OpenScriptツールバーの「停止」ボタンをクリックします。
スクリプトの「Run」ノードを開いて、スクリプト・ツリーのページ・オブジェクト、アクションおよびナビゲーションのノードを表示します。
特定のテスト要件実現のために、メニュー・オプションまたはコード・ビューを使用してスクリプトをカスタマイズすることができます。
注意: 記録中またはスクリプトの再生中に、スクリプト・エディタ・ビューまたはスクリプト・プロジェクトを閉じないでください。閉じると、OpenScriptアプリケーションで予期しない動作が発生する場合があります。 |
OpenScriptでは、サーバーに送信する前にXML POSTメッセージ(amf.post("
description
", "
urlPath
", "
postMessageXML
");
)を変換してバイナリ・ストリームに戻すことによって、記録されたAdobe Flex(AMF)リクエストを再生します。再生に使用されるアクションは、記録されたアクションまたはJavaコード・ビューで手動で指定されたアクションのいずれかです。自動再生は、OpenScriptのコマンドライン・インタフェースを使用し、Oracle Test Managerまたはサード・パーティ・ツールを介してサポートされます。
Adobe Flex(AMF)負荷テスト・モジュールには再生ツールバー・ボタンと反復ツールバー・ボタンがあり、ユーザーはこれらを使用してスクリプトの再生を開始することができます。再生は、スクリプトを通じて一度のみ行うか、データバンク・ファイルのデータを使用して何度も反復することが可能です。Adobe Flex(AMF)負荷スクリプトの再生結果は、「結果」ビューと「コンソール」ビューで確認できます。
Adobe Flex(AMF)負荷スクリプトを再生するには、次のようにします。
OpenScriptを起動します。
再生するAdobe Flex(AMF)負荷スクリプトを開きます。
「スクリプト」メニューの「再生」を選択するか、ツールバーのボタンをクリックします。
コンソール・ビューでスクリプト再生の進捗状況を確認できます。結果ビューでスクリプト再生の結果を確認できます。
Adobe Flex(AMF)負荷スクリプトを反復再生するには、次のようにします。
OpenScriptを起動します。
再生するAdobe Flex(AMF)負荷スクリプトを開きます。
「スクリプト」メニューから「反復」を選択するか、ツールバー・ボタンをクリックします。
「データバンクを使用」を選択します。
スクリプトに複数のデータベースが設定されている場合には、設定を指定するデータバンク・ファイルを選択します。
データバンク・ファイルの設定を指定します。
再生を停止する反復数オプションを選択し、任意の再生の反復回数を指定します。反復設定の詳細は、4.5項「スクリプトを反復して再生」を参照してください。
「OK」をクリックします。
コンソール・ビューでスクリプト再生の進捗状況を確認できます。結果ビューでスクリプト再生の結果を確認できます。
スクリプトを作成あるい記録したら、テスト上の必要に応じてスクリプトに変更を加え、カスタマイズすることができます。
Adobe Flex(AMF)負荷モジュールには、スクリプトに追加できるAdobe Flex(AMF)リクエストのアクションが含まれています。
Adobe Flex(AMF)負荷アクションをスクリプトに追加するには、次のようにします。
Adobe Flex(AMF)負荷テスト・スクリプトを記録します。
アクションを追加するスクリプト・ノードを選択します。
「スクリプト」メニューを選択した後、「追加」サブメニューから「その他」を選択します。
「Flex 負荷テスト (AMF)」ノードを開きます。
アクション・ノードを開いてアクションを選択します。
「OK」をクリックします。
オブジェクトに対するオブジェクト識別パスを入力します。「キャプチャ」または「選択」のメニュー・オプションを使用して、オブジェクト・パスを取得または選択できます。
オブジェクト・アクションに使用する必要な値を入力します。
「OK」をクリックします。
AMFリクエストについて、リクエストの説明、URL、XML POSTメッセージを入力します。
「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>");
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リファレンスを参照してください。
Adobe Flex(AMF)負荷テストの相関詳細設定を設定するには、次のようにします。
OpenScriptを起動します。
「ビュー」メニューから「OpenScript 詳細設定」を選択します。
「OpenScript」ノード配下の「相関」カテゴリを開きます。
Adobe Flex LT (AMF)を選択します。
Adobe Flex(AMF)負荷テスト・ライブラリを開きます。
チェック・ボックスを選択または選択解除して、各ルールを有効または無効にします。
「追加」または「編集」ボタンをクリックして、ライブラリ内のルールを修正します。
「OK」をクリックします。
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}}
関数と置き換えます。