一直在使用LR,对于Html_based script和Url-based script 两种录制方式之间,要如何选择,仍是一知半解。最近测试时遇到同样的业务功能,两种录制方式的脚本,单次执行时间差别很大。html的20多秒,而URL的是3秒。疑问?
Web(HTTP/HTML)协议
录制的是HTTP交互和服务器响应。
Web(HTTP/HTML)可以使用两种方式录制:HTML-based和URL-based。
Web(HTTP/HTML)不直接支持JavaScript,而是把它作为页面资源存储。
Web(Click and Script)协议
对于大部分应用程序,包括那些包含JavaScript的程序,可以使用Web(Click and Script)虚拟用户。对于PeopleSoft Enterprise和Oracle Web Application 11i虚拟用户,也推荐使用这种录制方式,有兴趣可以尝试一下。
对于那些使用applets和vbscript的浏览器应用 程序或非浏览器程序,推荐使用Web(HTTP/HTML)虚拟用户。
Html_based script
是lr的默认模式,也就是通常说的高层次模式,一般优先选择这种模式这种模式录制的脚本相对简短,便于阅读。它把类属一个页面的请求放在一个web_url中。为每个用户请求生成单独的函数。
HTML-based 方式对每个页面录制形成一条语句,对LoadRunner来说,在该模式下,访问一个页面,首先会与服务器之间建立一个连接获取页面的内容,然后从页面中分解得到其他的元素(component),然后建立几个连接分别获取相应的元素。
Url-based script
即通常所说的低层次录制模式,这种模式录制的脚本相对长,不利于阅读,但脚本更直观,它把客户端向服务器端发送的每一个请求都放在一个单独的web_url中,即一个请求对应一个web_url,页面和图片分别生成对应的web_url,相对Html_based script模式把类属一个页面的请求放在一个web_url中的方式,Url-based script模式的脚本更直观。可以捕获所有作为用户操作的结果发送到服务器的HTTP请求,然后一一记录下来。可以捕获非HTML应用程序,例如小程序和非浏览器应用程序。
URL-based 方式将每条客户端发出的请求录制成一条语句,对LoadRunner来说,在该模式下,一条语句只建立一个到服务器的连接,LoadRunner提供了web_concurrent_start和web_concurrent_end函数模拟的工作方式。
如何从脚本辨别使用哪种模式录制?
可以从脚本web_url中“mode”的值区分,Html_based script模式下mode的值为“html”,Url-based script模式下mode的值为“http”。从录制时可看出,web_submit_form、web_link一定是HTML模式,web_custom_request一定是URL模式。
web_url,web_submit_data函数两种方式都可能,此时只能通过mode的值来判断。
The Recording Level or Mode for Web scripts. The possible values are: HTML level: Instructs VuGen to record HTML actions intuitively, in the context of the current Web page. The actions are recorded as URL steps (web_url), link steps (web_link), image steps (web_image), and form submission steps (web_submit_form). VuGen records only the HTTP requests that return HTML pages, but not scripts or applications. HTTP level: Instructs VuGen to record all requests from the server as URL steps (web_url statements). It does not generate the web_link, web_image, or web_submit_form functions. This method is more scalable, but less intuitive when reading a generated script. In older versions, the HTTP level is called NORESOURCE.
html录制可选择项:
两种脚本类型:
1、默认的项,选择描述用户行为的脚本。
web_link是提供一个连接,提供了连接的名称和需要单击的超链接名称,点击就进去,如果链接地址不存在,会出错。模拟用户单击超链接的操作。如果出错了可以选择web_url方式。
2、仅包含明确的URL脚本。
web_url方式不考虑用户做了什么,只在于客户端发送了什么请求,只在于系统做了什么请求。web_url里边是需要访问的超链接地址。
URL录制时可选择项:
两种录制方式优点对比:
(一)HTML 录制
优点:减少了捕获动态值的需要。
(1)资源从内存中取出且在回放时下载。因此,脚本比其他的录制方式更小且更容易阅读。
(2)由于只有较少的硬编码脚本,因此只有较少的动态数值需要关联。
(3)可以插入图片检查之类的语句以检查结果是否正确。
(4)因为HTML模式回放时需要积极地解析返回的信息,因此它可能会比其他录制模式更加占用资源。然而,HTML模式record/replay有相当大的改善,使得差异最小化且微不足道。
(5)HMTL录制级别会为每一个HTML用户动作产生一个单独的步骤。而且HTML方式产生的脚本非常简洁和直述,易于阅读。
(二)URL 录制
优点:脚本具有灵活性和可量测性。
(1)脚本回放过程中,不再搜索内存和Cache。
(2)脚本更具可扩展性。支持页面上的Java Applets和ActiveX对象。
(3)URL录制级别把对服务器每个对象的请求,都录制成一个单独的请求。对业务过程有更好的控制。
如何选择两种模式?
1、基于浏览器的应用程序推荐使用HTML-Based Script。
2、不是基于浏览器的应用程序推荐使用URL-Based Script。
3、如果基于浏览器的应用程序中包含了Java Script,applet、vbscript脚本与等并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-Based Script方式录制。
4、基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-Based Script方式录制。
5、录制过程中不要使用浏览器的“后退”功能,LoadRunner对其支持不太好。
脚本录制过程中,可以根据需要在HTML级别和URL级别之间灵活地切换,以获得最佳的效果。