在跟使用Loadrunner工具使用者交流的过程中,经常有人提到这个问题,基于HTML(HyperText Markup
Language 超文本置标语言)模式录制与基于URL(Uniform Resource
Locator的缩写,统一资源定位符,也被称为网页地址,是因特网上标准的资源的地址。)录制模式到底有什么不同?为什么通常情况下我们都会去选择使用
URL模式去录制我们的业务脚本?所以在这里我把我知道的东西写出来跟同行分享和交流:
HTML是一种高级别的录制模式,这种模式是基于“浏览器”或者说是“内容敏感”的。这种录制选项是让浏览器去决定在回放下载HTML资源,哪些页面资源(比如图片或者Flash内容)是需要被下载。
URL是一种低级别的录制模式,这种录制选项不允许浏览器去确定哪些页面资源(比如图片或者Flash内容)是需要下载的。每项资源在录制回话的过程中都被录制到脚本中。这种级别录制模式同时也会录制其他任何隐藏的对象,比如session ID(也就是会话ID)信息,包括发给服务端和从服务端收到的session ID信息。
脚本方面的不同,HTML级别录制模式将生成的是web_submit_form
语句来提交终端用户可以看见或者修改的信息。当基于HTML模式在提交窗体时遇到错误,你可以选择URL模式去录制任何从服务端发送过来的请求和资源。而
URL基本录制模式将生成的是web_submit_data语句,这些语句记录的是所有通过浏览器实际发送给服务端的信息。值得注意的是URL录制模式
会录制那些HTML模式没有能录制到隐藏信息。通常情况下,隐藏信息里面会包含session ID信息。
写到这里,熟悉的人可能应该明白为什么在通常的情况下,我们选择URL模式去录制我们基于
Web(HTTP/HTML)
协议的脚本,概括的说就是现在的应用(或者说将来的应用)为了安全性,都会包含像session
ID、token等动态信息。简单的说就是每一访问,服务端都会给客户端发送一个描述会话的session信息,而session
ID使用的是动态的生成技术。如果要是脚本能够正常回放,通常需要把这个动态的信息保存下来,这个需要使用到correlation
技术(也就是关联技术)。在以后我会在我的博客里面继续写我对关联的理解(包括自动关联、手工关联、规则等实用技术)。