GWT-DFE
Google Web Toolkit(GWT)データ形式拡張機能(DFE)は,Web 開発者が複雑な JavaScript フロントエンド・アプリケーションを作成するための一連のツールです。コードは Java で開発され,オープン・ソースです。GWT は,非同期リモート・プロシージャ・コール,履歴管理,ブックマーク,UI 抽象化,国際化,ブラウザ間の移植性などの機能をサポートしています。
適用対象:
-
Web - HTTP/HTML 仮想ユーザ・スクリプト
-
SAP - Web 仮想ユーザ・スクリプトのデバッグ
概要
GWT-DFE サポートにより,GWT-RPC メカニズムを使用する GWT ベースの Web サイト用の仮想ユーザ・スクリプトを生成できます。GWT-DFE サポートを有効にせずに GWT-RPC ベースの Web サイトを記録すると,結果の仮想ユーザ・スクリプトは,次のコード・セグメントで示すように,暗号化された大量のデータを含む解読が困難なスクリプトになります。
データ形式のエンコードにより,相関,パラメータ化,および検証に使用するテキスト文字列を特定することが難しくなります。
ヒント: 記録したデータに大量のパイプが存在する場合,記録したサイトが GWT-RPC メカニズムを使用する GWT ベースの Web サイトである可能性があります。
GWT-DFE サポートを有効にすると,VuGen は HTTP 応答および要求に含まれるほとんどの複雑なデータをデコードできるようになります。これにより,VuGen は XML 形式のデータを含む仮想ユーザを生成できます。さらに,元のコード化されたデータは,データ・フィールドの関連付けられた名前を含まず,値のみが含まれます。GWT-DFE を適用した結果の XML 形式のデータには,データフィールドの名前と値の両方が含まれます。そのため,スクリプト内のこの XML 形式のデータを簡単に解読できるようになり,スクリプトの相関,パラメータ化,検証での使用が容易になります。
HTTP 通信に含まれる複雑なデータを VuGen にデコードさせるには,Web アプリケーションによって使用される .war ファイルを指定する必要があります。場合によっては,アプリケーションが .jar ファイルを使用することがあります。.war ファイルに関する以下のすべての考慮事項は,.jar にも同じように当てはまります。
.war ファイルには,HTTP 通信に含まれる情報をデコードおよびエンコードするために GWT が使用する論理が含まれています。VuGen は,同様のエンコードおよびデコード処理を実行するためにこの .war ファイルにアクセスする必要があります。通常,この .war ファイルはアプリケーション・サーバの Web アプリケーション・フォルダ内にあります。
注: 仮想ユーザ・スクリプトに関連付ける .war ファイルがアプリケーションの最新の .war ファイルであることを確認します。.war ファイルは,Web アプリケーションに変更が加えられるたびに変更されます。GWT-DFE サポートは,最新の .war ファイルが利用可能な場合のみ正しく機能します。
注:
- GWT- DFE では,GWT 固有の(STRONG_NAME_HEADER)相関のための自動ソリューションを提供します。
VuGen は,GWT-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.mycomp.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.mycomp.dfe.GWT__Request> </LR_EXTENSION> |
GWT リモート・プロシージャ・コール(RPCs)の自動検出
VuGen は,仮想ユーザ・スクリプトを生成または再生成するときに,サーバに送信される要求に含まれる HTTP ヘッダをスキャンします。VuGen は,これらの HTTP ヘッダのいずれかで x-gwt-module-base テキスト文字列と x-gwt-permutation テキスト文字列の両方を検出すると,VuGen の[エラー]タブに警告を表示します。この警告には,この仮想ユーザ・スクリプトに対して GWT DFE を有効にするように推奨するメッセージが表示されます。
注: VuGen は,GWT DFE が有効に設定されるまで,スクリプトの生成または再生成ごとに上記の警告を発行し続けます。
関連項目: