现在的位置: 首页 > 综合 > 正文

LoadRunner测试Google Suggest

2013年08月10日 ⁄ 综合 ⁄ 共 8573字 ⁄ 字号 评论关闭

 

Google的搜索框是典型的AJAX应用,用户在输入关键字的同时,前端页面通过xmlhttp与后台服务器动态交互,根据用户输入的关键字查找匹配的内容,向用户提示建议的搜索项,也就是所谓的“google suggest”。

 

如果使用LoadRunner进行测试,采用AJAXClick and Script)协议录制的话会得到以下脚本:

 

Action()

{

 

       web_add_cookie_ex("Cookie=PREF=ID=372e76ef6c7e842e:U=1961d03ffd7ab924:NW=1:TM=1264934277:LM=1264934316:S=OYfvCjRzGq1u4u4z; domain=google.cn; path=/", ENDITEM,

              "Cookie=NID=31=hwv9eoM6IVUuD1ssILGftThmu8fjLzTdRUZXJTwcEggxBjCoy4Fh3dEsZVLVZ66_WndMz03It6xuCCWAqW28ZCj2r2wJxmfKM4_UHMZGk_mnybPjA6tDdB9HFqVkX1EU; domain=google.cn; path=/", ENDITEM,

              "Cookie=SNID=31=BZul31Bwi_B97OMZlOIjZOeSm05tZw_9bw9T4zsT=kqUHVr3rOWtmkOvF; domain=google.cn; path=/verify", ENDITEM,

              LAST);

 

       web_browser("www.google.cn",

              DESCRIPTION,

              ACTION,

              "Navigate=http://www.google.cn/",

              LAST);

 

       web_edit_field("q",

              "Snapshot=t1.inf",

              DESCRIPTION,

              "Type=text",

              "Name=q",

              ACTION,

              "SetValue=AJAX",

              LAST);

 

       web_button("INPUT",

              "Snapshot=t2.inf",

              DESCRIPTION,

              "Type=submit",

              "Tag=INPUT",

              "ID=",

              "Value=Google 搜索",

              ACTION,

              "UserAction=Click",

              LAST);

 

       return 0;

}

 

可以看到google suggestAJAX行为并没有被录制下来,从回放日志的服务器返回记录中也找不到google suggest返回结果的踪影。

 

采用WEBHTTP/HTML)协议来录制,则得到下面的脚本:

 

Action()

{

 

       web_add_cookie("PREF=ID=372e76ef6c7e842e:U=1961d03ffd7ab924:NW=1:TM=1264934277:LM=1264934316:S=OYfvCjRzGq1u4u4z; DOMAIN=www.google.cn");

 

       web_add_cookie("NID=31=hwv9eoM6IVUuD1ssILGftThmu8fjLzTdRUZXJTwcEggxBjCoy4Fh3dEsZVLVZ66_WndMz03It6xuCCWAqW28ZCj2r2wJxmfKM4_UHMZGk_mnybPjA6tDdB9HFqVkX1EU; DOMAIN=www.google.cn");

 

       web_url("www.google.cn",

              "URL=http://www.google.cn/",

              "Resource=0",

              "RecContentType=text/html",

              "Referer=",

              "Snapshot=t1.inf",

              "Mode=HTML",

              EXTRARES,

              "Url=/extern_js/f/CgV6aC1DThICY24rMAo4V0ACLCswDjgLLCswETgVLCswFjgXLCswFzgFLCswGDgFLCswGTgTLCswJTjKiAEsKzAmOAksKzAnOAQsKzA8OAIsKzBEOAEsKzBFOAEs/qft1hKbTw2Q.js", ENDITEM,

              "Url=/favicon.ico", "Referer=", ENDITEM,

              "Url=/intl/zh-CN/images/toolbar_animation_20090618.png", ENDITEM,

              "Url=/complete/search?hl=zh-CN&xhr=t&q=A&cp=1", ENDITEM,

              "Url=/complete/search?hl=zh-CN&xhr=t&q=AJ&cp=2", ENDITEM,

              "Url=/complete/search?hl=zh-CN&xhr=t&q=AJA&cp=3", ENDITEM,

              "Url=/complete/search?hl=zh-CN&xhr=t&q=AJAX&cp=4", ENDITEM,

              LAST);

 

       web_url("csi",

              "URL=http://www.google.cn/csi?v=3&s=webhp&action=&e=17259,23361,23603&ei=kMFrS-GQB8qNkAWljIX6AQ&expi=17259,23361,23603&imc=2&imn=2&imp=2&rt=prt.110,xjsls.125,ol.437,iml.250,xjses.437,xjsee.468,xjs.500",

              "Resource=0",

              "RecContentType=text/html",

              "Referer=http://www.google.cn/",

              "Mode=HTML",

              LAST);

 

       web_url("search",

              "URL=http://www.google.cn/search?hl=zh-CN&source=hp&q=AJAX&btnG=Google+%E6%90%9C%E7%B4%A2&aq=f&oq=",

              "Resource=0",

              "RecContentType=text/html",

              "Referer=http://www.google.cn/",

              "Snapshot=t2.inf",

              "Mode=HTML",

              LAST);

 

       web_url("gen_204",

              "URL=http://www.google.cn/gen_204?mgmhp=shp1&ct=v&cd=false",

              "Resource=0",

              "RecContentType=text/html",

              "Referer=http://www.google.cn/search?hl=zh-CN&source=hp&q=AJAX&btnG=Google+%E6%90%9C%E7%B4%A2&aq=f&oq=",

              "Mode=HTML",

              LAST);

 

       web_url("csi_2",

              "URL=http://www.google.cn/csi?v=3&s=web&action=&e=17259,23361,23603&ei=msFrS5anH8qGkAX5rJDwAw&expi=17259,23361,23603&imc=1&imn=1&imp=1&rt=prt.125,ol.343,iml.156,xjses.375,xjsee.390,xjsls.390,xjs.437",

              "Resource=0",

              "RecContentType=text/html",

              "Referer=http://www.google.cn/search?hl=zh-CN&source=hp&q=AJAX&btnG=Google+%E6%90%9C%E7%B4%A2&aq=f&oq=",

              "Mode=HTML",

              LAST);

 

       return 0;

}

 

 

 

google suggest的行为被录制到第一个web_url的请求中,被作为资源进行HTTP请求。Web_url函数中的EXTRARES表示表示后面的url所指的内容都是作为资源来请求的,LR的帮助文档中是这样说的:

A list of resources generated by non–HTML mechanisms in the Web page. These include the resources requested by Javascript, ActiveX, Java applets and Flash. VuGen's Recording Options allow these elements either to be recorded within the current script step (the default mode) or recorded as separate steps (see "Recording in HTML–Based Mode" in the VuGen Online Book).

 

如果想把google suggest的行为分别录制成一个个的web_url请求,则需要修改录制模式,改为用“URL-Based”模式录制:

 

Action()

{

 

       web_add_cookie("PREF=ID=372e76ef6c7e842e:U=1961d03ffd7ab924:NW=1:TM=1264934277:LM=1264934316:S=OYfvCjRzGq1u4u4z; DOMAIN=www.google.cn");

 

       web_add_cookie("NID=31=hwv9eoM6IVUuD1ssILGftThmu8fjLzTdRUZXJTwcEggxBjCoy4Fh3dEsZVLVZ66_WndMz03It6xuCCWAqW28ZCj2r2wJxmfKM4_UHMZGk_mnybPjA6tDdB9HFqVkX1EU; DOMAIN=www.google.cn");

 

       web_url("www.google.cn",

              "URL=http://www.google.cn/",

              "Resource=0",

              "RecContentType=text/html",

              "Referer=",

              "Snapshot=t1.inf",

              "Mode=HTTP",

              LAST);

 

       web_concurrent_start(NULL);

 

       web_url("logo_cn.gif",

              "URL=http://www.google.cn/intl/zh-CN/images/logo_cn.gif",

              "Resource=1",

              "RecContentType=image/gif",

              "Referer=http://www.google.cn/",

              "Snapshot=t2.inf",

              LAST);

 

       web_url("cn_icp.gif",

              "URL=http://www.google.cn/intl/zh-CN_cn/images/cn_icp.gif",

              "Resource=1",

              "RecContentType=image/gif",

              "Referer=http://www.google.cn/",

              "Snapshot=t3.inf",

              LAST);

 

       web_concurrent_end(NULL);

 

       web_concurrent_start(NULL);

 

       web_url("qft1hKbTw2Q.js",

              "URL=http://www.google.cn/extern_js/f/CgV6aC1DThICY24rMAo4V0ACLCswDjgLLCswETgVLCswFjgXLCswFzgFLCswGDgFLCswGTgTLCswJTjKiAEsKzAmOAksKzAnOAQsKzA8OAIsKzBEOAEsKzBFOAEs/qft1hKbTw2Q.js",

              "Resource=1",

              "RecContentType=text/javascript",

              "Referer=http://www.google.cn/",

              "Snapshot=t4.inf",

              LAST);

 

       web_url("nav_logo7.png",

              "URL=http://www.google.cn/images/nav_logo7.png",

              "Resource=1",

              "RecContentType=image/png",

              "Referer=http://www.google.cn/",

              "Snapshot=t5.inf",

              LAST);

 

       web_url("favicon.ico",

              "URL=http://www.google.cn/favicon.ico",

              "Resource=1",

              "RecContentType=image/x-icon",

              "Referer=",

              "Snapshot=t6.inf",

              LAST);

 

       web_concurrent_end(NULL);

 

       web_url("csi",

              "URL=http://www.google.cn/csi?v=3&s=webhp&action=&e=17259,23361,23603&ei=9MRrS62DC8yTkAX285SPAw&expi=17259,23361,23603&imc=2&imn=2&imp=2&rt=prt.94,xjsls.109,ol.437,iml.328,xjses.452,xjsee.484,xjs.515",

              "Resource=0",

              "RecContentType=text/html",

              "Referer=http://www.google.cn/",

              "Mode=HTTP",

              LAST);

 

       web_concurrent_start(NULL);

 

       web_url("toolbar_animation_20090618.png",

              "URL=http://www.google.cn/intl/zh-CN/images/toolbar_animation_20090618.png",

              "Resource=1",

              "RecContentType=image/png",

              "Referer=http://www.google.cn/",

              "Snapshot=t7.inf",

              LAST);

 

       web_url("search",

              "URL=http://www.google.cn/complete/search?hl=zh-CN&xhr=t&q=A&cp=1",

              "Resource=1",

              "RecContentType=application/json",

              "Referer=http://www.google.cn/",

              "Snapshot=t8.inf",

              LAST);

 

       web_url("search_2",

              "URL=http://www.google.cn/complete/search?hl=zh-CN&xhr=t&q=Aj&cp=2",

              "Resource=1",

              "RecContentType=application/json",

              "Referer=http://www.google.cn/",

              "Snapshot=t9.inf",

              LAST);

 

       web_url("search_3",

              "URL=http://www.google.cn/complete/search?hl=zh-CN&xhr=t&q=AjA&cp=3",

              "Resource=1",

              "RecContentType=application/json",

              "Referer=http://www.google.cn/",

              "Snapshot=t10.inf",

              LAST);

 

       web_url("search_4",

              "URL=http://www.google.cn/complete/search?hl=zh-CN&xhr=t&q=AjAX&cp=4",

              "Resource=1",

              "RecContentType=application/json",

              "Referer=http://www.google.cn/",

              "Snapshot=t11.inf",

              LAST);

 

       web_concurrent_end(NULL);

 

       lr_think_time(14);

 

       web_url("search_5",

      

抱歉!评论已关闭.