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 都会发出上述警告。
另请参阅: