GWT-DFE

Google Web 工具包 (GWT) 数据格式扩展 (DFE) 是一组工具,供 Web 开发人员用来创建复杂的 JavaScript 前端应用程序。该代码是用 Java 开发的,并且是开源的。在其他功能中,GWT还支持: 异步远程过程调用、历史记录管理、书签、UI 抽象、国际化和跨浏览器可移植性。

适用于:

  • Web - HTTP/HTML Vuser 脚本

  • SAP - Web Vuser 脚本

概述

GWT-DFE 支持可帮助为使用 GWT-RPC 机制的基于 GWT 的网站生成 Vuser 脚本。在不启用 GWT-DFE 支持的情况下录制基于 GWT-RPC 的网站时,生成的 Vuser 脚本中可能包含大量难以破译的代码数据,如下面的代码段所示:

编码的数据格式使得用于关联、参数化和验证的文本字符串难以识别。

提示: 录制数据中存在的许多管道符表明所录制的站点可能是使用 GWT-RPC 机制的基于 GWT 的网站。

当启用 GWT-DFE 支持之后,VuGen 能够对 HTTP 响应和请求中的很多复杂数据进行解码。这使 VuGen 能够生成含有 XML 格式数据的 Vuser 脚本。此外,原始编码数据仅包含值,而没有数据字段的关联名称。在应用 GWT-DFE 后,生成的 XML 格式数据中包含数据字段的名称和值。因此,脚本中的 XML 格式数据更容易破译,使得脚本更易于关联、参数化,以及用于验证目的。

要使 VuGen 能够对 HTTP 通信中的复杂数据进行解码,必须确定 Web 应用程序所使用的 .war 文件。有时,应用程序使用 .jar 文件。以下有关 .war 文件的所有注意事项均同样适用于 .jar

.war 文件包含 GWT 对 HTTP 通信信息进行编码和解码时所用的逻辑。VuGen 需要访问 .war 文件,以便执行类似的编码和解码程序。通常情况下,这些 .war 文件位于应用程序服务器上的 Web 应用程序文件夹下。

注: 请确保与 Vuser 脚本关联的 .war 文件是应用程序的最新 .war 文件。每次对 Web 应用程序执行更改时,将更改 .war 文件。只有在最新 .war 文件可用时,GWT-DFE 支持功能才能正常工作。

注:  

  • 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.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>

返回顶部

自动检测 GWT 远程过程调用 (RPC)

当 VuGen 生成或重新生成 Vuser 脚本时,VuGen 将在发送到服务器的请求中扫描 HTTP 标头。如果 VuGen 在任何一个 HTTP 标头中检测到 x-gwt-module-base 文本字符串和 x-gwt-permutation 文本字符串,它将在 VuGen 的“错误”选项卡中显示警告。警告消息建议为 Vuser 脚本启用 GWT-DFE。

注: 在启用 GWT-DFE 之前,每次生成或重新生成脚本时,VuGen 都会发出上述警告。

返回顶部

另请参阅: