GWT(Google Web Toolkit) 是 Google 推出的 Ajax 应用开发包,GWT 支持开发者使用Java 语言开发 Ajax 应用。
LoadRunner中的AJAX 函数支持的框架包括:
· Atlas 1.0.10920.0/ASP.NET AJAX - 所有控件
· Scriptaculous 1.8 - 自动完成、重新排序列表和滑块
VuGen 支持引擎级别的以下框架。这表示 VuGen 将创建标准的 Web (Click and Script) 步骤,而不是创建 AJAX 特定函数:
· Prototype 1.6
· Google Web Toolkit (GWT) 1.4
其中包括了GWT。下载了一个gwt-windows-1.4.61,解压后可以在里面的samples目录找到一些GWT的AJAX应用的例子,测试了一下其中的DynaTable。
启动其中的DynaTable-shell.cmd批处理文件,会出来一个GWT附带的浏览器,并自动导航到:http://localhost:8888/com.google.gwt.sample.dynatable.DynaTable/DynaTable.html
使用LoadRunner的AJAX(Click and Script)协议来录制,把录制的URL设置为使用分配的IP或127.0.0.1,而不是localhost:
http://192.168.1.100:8888/com.google.gwt.sample.dynatable.DynaTable/DynaTable.html
否则录制下来的脚本中web_browser函数会出现不正常的情况:
web_browser("Please enter the initial URL here",
DESCRIPTION,
ACTION,
"Navigate=Please enter the initial URL here",
LAST);
改成分配的IP地址后录制下来的脚本如下所示:
Action()
{
web_browser("DynaTable.html",
DESCRIPTION,
ACTION,
"Navigate=http://192.168.1.100:8888/com.google.gwt.sample.dynatable.DynaTable/DynaTable.html",
LAST);
lr_think_time(6);
web_button("BUTTON",
"Snapshot=t1.inf",
DESCRIPTION,
"Type=button",
"Tag=BUTTON",
"ID=",
"Value=>",
ACTION,
"UserAction=Click",
LAST);
web_element("Saturday",
"Snapshot=t2.inf",
DESCRIPTION,
"Text=Saturday",
"Tag=LABEL",
ACTION,
"UserAction=Click",
LAST);
web_button("BUTTON_2",
"Snapshot=t3.inf",
DESCRIPTION,
"Type=button",
"Tag=BUTTON",
"ID=",
"Value=All",
ACTION,
"UserAction=Click",
LAST);
return 0;
}
其中,第一个web_button函数对应录制的是按表格下一页按钮的动作,这个动作会动态发送HTTP请求后台数据,第二个web_button 函数对应的是点击ALL按钮的动作,web_element函数对应的是点击选择框的动作,按理应该录制成web_check_box函数,但是这个动作不会产生HTTP请求(第二个web_button也一样),因此将其去掉也可以。
如果想看到第一个web_button点击后服务器返回的数据,可以用web_reg_save_param函数来获取并保存到参数,然后用lr_output_message输出参数值:
Action()
{
web_browser("DynaTable.html",
DESCRIPTION,
ACTION,
"Navigate=http://192.168.1.100:8888/com.google.gwt.sample.dynatable.DynaTable/DynaTable.html",
LAST);
lr_think_time(6);
web_reg_save_param("NextData",
"LB=",
"RB=",
"Search=Body",
"ORD=1",
LAST);
web_button("BUTTON",
"Snapshot=t1.inf",
DESCRIPTION,
"Type=button",
"Tag=BUTTON",
"ID=",
"Value=>",
ACTION,
"UserAction=Click",
LAST);
lr_output_message(lr_eval_string("{NextData}"));
web_element("Saturday",
"Snapshot=t2.inf",
DESCRIPTION,
"Text=Saturday",
"Tag=LABEL",
ACTION,
"UserAction=Click",
LAST);
web_button("BUTTON_2",
"Snapshot=t3.inf",
DESCRIPTION,
"Type=button",
"Tag=BUTTON",
"ID=",
"Value=All",
ACTION,
"UserAction=Click",
LAST);
return 0;
}