今天寒风刺骨,阳光明媚,新年的气氛越来越浓,临近年底,心情是大不同呀大不同。在美好的心情下,我开始了今天的体验之旅。
打开VuGen,新建一个脚本,选择最熟悉的Web协议,别急,这里怎么两个Web协议呢?
印象中7.5的版本好像没有Web(Click and scrīpt),那么这个新的协议和我原来熟悉的Web(HTTP/HTML)有什么不同呢?让我来一探究竟。
先从最简单的说明上来看,
Web(HTTP/HTML): Emulation of communication between a browser and Web Server.
Web(Click and scrīpt):Emulation of the communication between a web browser and the web server at user-action level.
从字面上来看,Web(Click and scrīpt)就是多了”at user-action level”,其他的没有什么不同嘛。呵呵,这可是很关键的几个字,让我有点明白二者之间的差别了。如果这就是本篇文章的结尾,相信各位看官一定会骂人,而且我自己也没法交代,所以当然我要更详细的深入,看看二者到底有啥区别,我的依据主要是软件的手册和我自己的理解。
Web(Click and scrīpt)
Web (Click and scrīpt)协议的录制是基于GUI的、用户实际操作界面过程的脚本,记录的是浏览器和服务器的WEB对话,你选择了该协议后,VuGen记录的是你在WEB界面上的操作的直观过程。例如,当你点击“提交”按钮提交信息时,VuGen会生成web_button函数,当你在编辑框中输入时,VuGen生成web_edit_field函数。
Web(Click and scrīpt)的Vusers支持非HTML代码,比如客户端的Javascrīpt。VuGen会创建直观的脚本来精确的模拟你在web页面上的操作过程。相反,Web(HTTP/HTML)协议不支持Javascrīpt,VuGen只是把Javascrīpt作为web_url函数的一个资源。
Web(Click and scrīpt)的Vusers能够自动处理大多数关联(correlations)的问题,大大减少脚本编程的时间。通常情况下,你不需要再去定义关联的规则或者在录制后手动再去做关联。
例如,当你点击按钮提交数据,VuGen会生成web_button函数。如果该按钮是图片,VuGen生成web_image_submit函数,例如下面的例子中,用户点击了login
…
web_image_submit("Login",
"Snapshot=t4.inf",
DEscrīptION,
"Alt=Login",
"Name=login",
"FrameName=navbar",
ACTION,
"ClickCoordinates=31,6",
LAST);}
相信使用过QTP(QuickTest Professional)的用户已经明白了,Web(Click and scrīpts)的录制和QTP的过程有点类似,是基于用户操作过程的录制。
另外需要注意的是,Web(Click and scrīpts)不支持Applets和VBscrīpt。如果被测的WEB站点包含了Applets和VBscrīpt,请使用Web(HTTP/HTML)协议。
Web (HTTP/HTML)
Web(HTTP/HTML)协议是基于浏览器请求响应数据的脚本。
当你选择Web(HTTP/HTML)协议录制时,VuGen记录的是在Internet上传送的“浏览器发出的HTTP请求和服务器的响应”的数据,脚本中包含了你的浏览器请求的数据详细信息,而不是操作过程的信息。
Web(HTTP/HTML)协议提供了两种录制方式,基于HTML的方式和基于URL的方式。这两种方式让你指定录制哪些信息和脚本使用哪些函数。例如,当你点击按钮(不管是图片,还是按钮)提交信息时,VuGen会生成web_submit_data或者web_submit_form函数。
web_submit_data("start.swe_2",
"Action=http://design/callcenter_enu/start.swe",
"Method=POST",
"RecContentType=text/html",
"Referer=http://design/callcenter_enu/start.swe",
"Snapshot=t2.inf",
"Mode=HTML",
ITEMDATA,
"Name=SWEUserName", "Value=wrun", ENDITEM,
"Name=SWEPassword", "Value=wrun", ENDITEM,
"Name=SWERememberUser", "Value=Yes", ENDITEM,
"Name=SWENeedContext", "Value=false", ENDITEM,
"Name=SWEFo", "Value=SWEEntryForm", ENDITEM,
"Name=SWETS", "Value={SiebelTimeStamp}", ENDITEM,
"Name=SWECmd", "Value=ExecuteLogin", ENDITEM,
"Name=SWEBID", "Value=-1", ENDITEM,
"Name=SWEC", "Value=0", ENDITEM,
LAST);
更详细的信息,可以参考手册或者我的《LoadRunner使用说明》。
不过Web(HTTP/HTML)协议不支持Javascrīpt,它只是把Javascrīpt当作web页面的一个资源。
对于大部分的应用,包括使用Javascrīpt的应用,使用Web(Click and scrīpt)协议;对于使用applets和vbscrīpt的基于浏览器的应用,或者非浏览器的web应用,使用Web(HTTP/HTML)协议。这两个协议是互斥的,在选择多协议的时候是不能同时选的。
以上是我今天的体会。如有不当之处,望指出。