データ形式拡張機能(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>

先頭に戻る

関連項目:

OK
LoadRunner Professional(旧称 LoadRunner)ヘルプセンターへようこそ。LoadRunner Professional は,パフォーマンス・テスト製品の新しい Micro Focus LoadRunner ファミリの一部です。