|
基于HTML的高级选项设置
在VuGen中,基于HTML的录制标准为默认选项。该标准命令VuGen生成当前网页上下文中的HTML行为。在录制会话中不会录制任何资源,但会在回放时下载这些资源。
VuGen允许你为基于HTML的录制标准设置下列高级选项:
• 指定脚本类型(Script Types)
• Handling Non HTML-Generated Elements
指定脚本类型
在基于HTML的录制标准中,有两种脚本类型可供选择:
• 描述用户行为类脚本(a script describing user actions)
• 只包含直接的URLs类脚本(a script containing explicit URLs only)
第一个选项“描述用户行为类脚本”为默认选项。使用该类型录制的脚本产生的是与发生的行为直接对应的函数,包括创建URL(web_url)、链接(web_link)、图片(web_image)和表单提交(web_submit_form)这些函数。产生的脚本十分直观并且类似于上下文敏感的录制。
/* HTML-based mode - a script describing user actions*//
...
web_url("Click Here For Additional Restrictions",
"URL=http://www.im.aa.com/American...restrictions.html",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=http://www.im.aa.com/American?…,
"Snapshot=t4.inf",
"Mode=HTML",
LAST);
web_link("Click Here For Additional Restrictions",
"Text=Click Here For Additional Restrictions",
"Snapshot=t4.inf",
LAST);
web_image("buttonhelp.gif",
"Src=/images/buttonhelp.gif",
"Snapshot=t5.inf",
LAST);
…
第二个选项是“只包含直接的URLs类脚本”,该类型脚本会把所有链接、图片和URLs为录制为web_url语句,或者如果是表单,则生成web_submit_data函数。该类脚本不会产生web_link、web_image和web_submit_form函数。产生的脚本显得不够直观。这一模式主要用在一个站点有很多链接,并且这些链接的文本很多是相同的时的测试中。在这种情况下如果使用第一个选项来录制脚本,它录制的是链接的序数(第几个),但是如果你使用的第二个选项来录制脚本,则会根据URLs列出每一个链接。这使得在参数化和修正步骤时变得更加容易。
下面的代码片段为使用“只包含直接的URLs类脚本”录制时产生的脚本:
/* A HTML-based script containing explicit URLs only*//
…
web_url("Click Here For Additional Restrictions",
"URL=http://www.im.aa.com/American...restrictions.html",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=http://www.im.aa.com/American?…
"Snapshot=t4.inf",
"Mode=HTML",
LAST);
web_url("buttonhelp.gif",
"URL=http://www.im.aa.com/American?BV_EngineID...,
"TargetFrame=aamain",
"Resource=0",
"RecContentType=text/html",
"Referer=http://www.im.aa.com/American?…
"Snapshot=t5.inf",
"Mode=HTML",
LAST);
…
非HTML元素的处理(Handling Non HTML-Generated Elements)
很多的网页包含了非HTML元素,如applets、XML、ActiveX元素、javascript。这些非HTML元素通常包含了对它们自身资源的获取。例如:录制网页中的一个javascript函数调用中可能加载了几幅图片。某个applet可能加载了外部的文本文件。使用下面的选项可以控制VuGen在录制时如何处理产生的非HTML元素:
• 在当前脚本步骤中进行录制[Record within the current script step](默认)
• 使用并发组以独立的步骤进行录制[Record in separate steps using concurrent groups]
• 不录制
第一个选项“Record within the current script step”不会为每一个产生的非HMTL元素生成新的函数。它把所有的资源作为web_url语句的参数列出。这些资源参数用EXTRARES标志来标识。下面是使用该选项所生成的脚本片段:
web_url("index.asp",
"URL=http://www.daisy.com/index.asp",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
EXTRARES,
"Url=http://www.daisy.com/ScrollApplet.class","Referer=",ENDITEM,
"Url=http://www.daisy.com/board.txt", "Referer=",ENDITEM,
"Url=http://www.daisy.com/nav_login1.gif",ENDITEM,
…
LAST);
第二个选项“使用并发组以独立的步骤进行录制”为每一个产生的非HTML资源创建一个新的函数——不再把它们作为参数包含在处理该页面的web_url函数里面。所有的为处理这些非HTML资源所生成的web_url函数都放在一个并发组里面(用web_concurrent_start和web_concurrent_end括起来的部分)。
下面的样例即为使用这一选项来录制的。在该例中为applet和文本文件的处理各生成了一个web_url函数:
web_url("index.asp",
"URL=http://www.daisy.com/index.asp",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
web_concurrent_start(NULL);
web_url("ScrollApplet.class",
"URL=http://www.daisy.com/ScrollApplet.class",
"Resource=1",
"RecContentType=application/octet-stream",
"Referer=",
LAST);
web_url("board.txt",
"URL=http://www.daisy.com/board.txt",
"Resource=1",
"RecContentType=text/plain",
"Referer=",
LAST);
web_concurrent_end(NULL);
第三个选项为“不录制”,使用这一选项时表示VuGen不会录制任何由非HTML元素所产生的资源。
值得注意的是当你在基于HTML模式下工作时,VuGen会在web_url语句中插入TargetFrame属性。VuGen使用这一信息以在浏览器运行和测试结果报告中正确地显示该页面。
web_url("buttonhelp.gif",
"URL=http://www.im.aa.com/American?BV_EngineID=...”,
"TargetFrame=aamain",
"Resource=0",
"RecContentType=text/html",
"Referer=http://www.im.aa.com/American?BV_EngineID=…l",
"Snapshot=t5.inf",
"Mode=HTML",
LAST);
当使用基于URL模式录制脚本时,VuGen会录制页面中所有frames内容,因此不需要TargetFrame属性。 |
|