データ形式拡張機能(DFE) - 概要
データ形式拡張機能(DFE)のサポートにより,クライアントとサーバ間で交換されるフォーマットされたデータのデコードおよびエンコード機能を提供することで,Web アプリケーションのスクリプトをより簡単に作成できます。その結果,生成された仮想ユーザ・スクリプトの相関およびパラメータ化が容易になります。
適用対象:
-
Web - HTTP/HTML 仮想ユーザ・スクリプト
-
SAP - Web 仮想ユーザ・スクリプトのデバッグ
-
Flex 仮想ユーザ・スクリプト内の Web - HTTP/HTML ステップ
DFE を使用する場合
仮想ユーザ・スクリプトを記録すると,VuGen はクライアントと Web サーバ間の HTTP 要求および応答を記録します。HTTP 要求および応答に含まれるデータは通常エンコードされます。たとえば,データの一部はバイナリ形式の場合があります。エンコードされたデータは,HTTP クエリ文字列,ヘッダ,ボディ,クッキーに含まれる場合があります。エンコードされたデータを仮想ユーザ・スクリプトに含めた場合,そのスクリプトには解読が困難なデータが含まれることになります。その結果,パラメータ化や相関で使用できるテキスト文字列の識別が困難になります。
LoadRunner は,データ形式拡張機能(DFE)を使用して,仮想ユーザ・スクリプトに含まれるエンコードされたデータを起因とする困難性を解決します。DFE のサポートにより,クライアントとサーバ間で交換されるエンコード化データをデコードする機能を提供することで,仮想ユーザ・スクリプトをより簡単に作成できます。デコードされたデータ形式を提供することにより,可読形式で仮想ユーザ・スクリプトの情報が表示されるため,必要に応じてスクリプトの相関およびパラメータ化を実行できます。スクリプトを再生すると,DFE のサポートにより変更済みの仮想ユーザ・スクリプトが再びエンコードされます。そのため,仮想ユーザが正しくエンコードされた要求をサーバに送信できるようになります。
仮想ユーザ・スクリプトに DFE を適用してスクリプトが再び生成されると,DFE はスクリプトを変更し,エンコードしたデータをデコードしたデータと置換します。
LoadRunner には,事前に定義された DFE が数多く含まれています。各 DFE は,特定のタイプのデータをエンコードおよびデコードできます。たとえば,「GWT-DFE」 は,スクリプトの生成時に GWT データを XML 形式にデコードし,スクリプトの再生前に XML 形式データを GWT 形式データにエンコードします。事前に定義された DFE の完全なリストについては,「データ形式拡張機能リスト」を参照してください。
DFE が適用される仕組み
エンコードされたデータをデコードする必要がある場合にそれぞれの仮想ユーザ・スクリプトに対して DFE サポートを有効にします。DFE サポートを有効にすると,次の場合に DFE サポートが適用されます。
-
スクリプトの生成(記録後)または再生成時。データをデコードするために DFE が適用され,簡単に理解し,使用できるスクリプトが生成されます。
-
スクリプトの実行時。デコードされたデータを再エンコードするのに DFE が適用され,サーバが対応可能な形式でエンコードされたデータを含む HTTP メッセージが生成されます。
注: スクリプトの生成または再生時の DFE の適用に加え,仮想ユーザ・スクリプト内の選択した文字列に DFE を適用することもできます。詳細については,「DFE による仮想ユーザ・スクリプトの変更方法」 を参照してください。
シナリオによっては,エンコードされたデータのデコードは,完全にデコードされたデータが生成されるまで,多くの段階で実行しなければならない場合があります。変換プロセスの各段階は,指定した DFE を適用することで実行します。たとえば,応答に含まれるエンコードされたデータは,3 つの DFE(最初の DFE-1,2 番目の DFE-2,最後の DFE-3)を適用することでデコードできます。各段階では 1 つの DFE からの出力が次の DFE の入力になります。これは完全にデコードされたデータが生成されるまで続きます。
DFE チェーン
エンコードされたデータをデコードするために必要な一連の DFE はチェーンで定義します。たとえば,3 つの DFE(DFE-1,DFE-2,DFE-3)を含む DFE-Chain-1 というチェーンを作成できます。チェーン内の DFE のシーケンスは,エンコードされたデータに適用する DFE の順序を指定するため重要です。
エンコードされたデータをデコードするために 1 つのみの DFE が必要な場合でも,その DFE をチェーンに含める必要があります。
DFE チェーンの割り当て
HTTP メッセージは,ボディ,ヘッダ,クッキー,クエリ文字列といった複数のセクションに分割できます。仮想ユーザ・スクリプトをデコードおよびエンコードするために適用する DFE チェーンを定義したら,DFE チェーンを適用する HTTP メッセージのセクションを指定する必要があります。各 HTTP メッセージには,Body セクションおよび Query String セクションが 1 つずつしかないため,それらの各セクションに適用する DFE チェーンは 1 つしか指定できません。その一方で,各 HTTP メッセージは数多くのヘッダおよびクッキーを含むことができます。したがって,各ヘッダおよびクッキーには,適用する特定の DFE チェーンを指定できます。詳細については,「DFE チェーンの適用」 を参照してください。
DFE を含む仮想ユーザ・スクリプトの再生
DFE 機能を含む仮想ユーザ・スクリプトを作成すると,さまざまなメッセージが VuGen の[出力]ペインの再生ログに追加されます。これらのメッセージを検証して,DFE 機能が正しく実装されていることを確認します。詳細については,「トラブルシューティング - データ形式拡張(DFE)」を参照してください。
GWT-DFE サポートを使用しておよび使用せずに生成されたコードの例
元のスクリプト - GWT-DFE サポートなしの場合 |
---|
6|0|11|http://localhost:8081/MyTestApp/testapp/|624C899BB846618A2E7F49092 8212946|com.test.client.GreetingService|greetServeCompAns|com.test.client.ComplexObject/198661839 |GWT User|inside object|java.util.HashSet/1594477813|java.lang.String/2004016611|add string1| string2|1|2|3|4|1|5|5|1001|1999|6|5|321|1234|7|0|8|0|8|2|9|10|9|11| |
GWT-DFE サポートを適用後のスクリプト |
---|
<LR_EXTENSION name="GWT_DFE_1"> <com.hp.dfe.GWT__Request> <moduleBaseURL>http://localhost:8081/MyTestApp/testapp/</moduleBaseURL> <rpcRequest> <flags>0</flags> <method> <class>com.test.client.GreetingService</class> <name>greetServeCompAns</name> <parameter-types> <class>com.test.client.ComplexObject</class> </parameter-types> </method> <parameters> <com.test.client.ComplexObject> <anIntField>1001</anIntField> <anotherIntField>1999</anotherIntField> <name>GWT User</name> <objectInComposingField> <anIntField>321</anIntField> <anotherIntField>1234</anotherIntField> <name>inside object</name> <stringsSet/> </objectInComposingField> <stringsSet> <string>add string2</string> <string>add string1</string> </stringsSet> </com.test.client.ComplexObject> </parameters> <serializationPolicy class="com.google.gwt.user.server.rpc.impl.StandardSerializationPolicy"/> </rpcRequest> </com.hp.dfe.GWT__Request> </LR_EXTENSION> |
関連項目:
- 「DFE サポートの実装」
- VuGen JavaScript Engine を使用して,一般的な JavaScript ライブラリによりデータをエンコードおよびデコードする方法の詳細については,「VuGen JavaScript エンジンの使用」を参照してください。
- カスタム DFE の作成の詳細(上級ユーザ向け)については, ソフトウェア・サポート技術情報を参照してください。