LoadRunner测试GWT

来源:互联网 发布:淘宝卖家怎么改店名 编辑:程序博客网 时间:2024/06/08 00:27

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目录找到一些GWTAJAX应用的例子,测试了一下其中的DynaTable

 

启动其中的DynaTable-shell.cmd批处理文件,会出来一个GWT附带的浏览器,并自动导航到:http://localhost:8888/com.google.gwt.sample.dynatable.DynaTable/DynaTable.html

 

使用LoadRunnerAJAXClick and Script)协议来录制,把录制的URL设置为使用分配的IP127.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;

}