转:HTML与URL两种录制模式分析
2014-04-04 21:49
417 查看
Loadrunner的Virtual User Generator 提供人脚本的录制功能,对于初学者来说,这大大的降低了编写脚本的门槛,loadrunner提供两种录制脚本的方式:Html_based script和Url-based script ,初学者疑惑这两种方式有什么不同? 在这里我们来做个简单分析。
下面我们来分别通过两种方式来录制百度首页,对比一下他们之间有什么不同。
HTML方式的脚本:
URL方式的脚本:
Html_based
script是loadrunner的缺省模式,即默认模式,也就是通常说的高层次模式,一般优先选择这种模式这种模式录制的脚本相对简短,便于阅读。它把类属一个页面的请求放在一个web_url中。
Url-based
script即通常所说的低层次录制模式,这种模式录制的脚本相对长,不利于阅读,但脚本更直观,它把客户端向服务器端发送的每一个请求都放在一个单独的web_url中,即一个请求对应一个web_url,页面和图片分别生成对应的web_url,相对Html_based
script模式把类属一个页面的请求放在一个web_url中的方式,Url-based
script模式的脚本更直观。
如何从脚本辨别使用哪种模式录制?
我们可以从脚本web_url中“mode”的值区分,Html_based
script模式下mode的值为“html”,Url-based
script模式下mode的值为“http”。还有Html_based
script模式记录为web_submit_form,而Url-based
script模式记录为web_submit_data。
两种录制方式优点对比:
(一)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等并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-Based
Script方式录制。
4、基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-Based
Script方式录制。
下面我们来分别通过两种方式来录制百度首页,对比一下他们之间有什么不同。
HTML方式的脚本:
Action() { web_url("www.baidu.com", "URL=http://www.baidu.com/", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t3.inf", "Mode=HTML", EXTRARES, "Url=http://s1.bdstatic.com/r/www/img/i-1.0.0.png", ENDITEM, "Url=http://s1.bdstatic.com/r/www/img/bg-1.0.0.gif", ENDITEM, "Url=/favicon.ico", "Referer=", ENDITEM, "Url=http://suggestion.baidu.com/su?wd=&cb=window.bdsug.sugPreRequest&sid=1440_2031_1945_1788&t=1362056239875", ENDITEM, "Url=http://suggestion.baidu.com/su?wd=%E8%99%AB%E5%B8%88&p=3&cb=window.bdsug.sug&sid=1440_2031_1945_1788&t=1362056247256", ENDITEM, "Url=http://suggestion.baidu.com/su?wd=%E8%99%AB%E5%B8%88%20&p=3&cb=window.bdsug.sug&sid=1440_2031_1945_1788&t=1362056247969", ENDITEM, "Url=http://suggestion.baidu.com/su?wd=%E8%99%AB%E5%B8%88%20%E5%8D%9A%E5%AE%A2%E5%9B%AD&p=3&cb=window.bdsug.sug&sid=1440_2031_1945_1788&t=1362056251016", ENDITEM, LAST); return 0; } |
Action() { web_url(www.baidu.com, "URL=http://www.baidu.com/", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t67.inf", "Mode=HTTP", LAST); web_concurrent_start(NULL); web_url("shouye_b5486898c692066bd2cbaeda86d74448.gif", "URL=http://www.baidu.com/img/shouye_b5486898c692066bd2cbaeda86d74448.gif", "Resource=1", "RecContentType=image/gif", "Referer=http://www.baidu.com/", "Snapshot=t68.inf", LAST); web_url("gs.gif", "URL=http://www.baidu.com/cache/global/img/gs.gif", "Resource=1", "RecContentType=image/gif", "Referer=http://www.baidu.com/", "Snapshot=t69.inf", LAST); web_url("tangram-1.3.4c1.0.js", "URL=http://s1.bdstatic.com/r/www/cache/global/js/tangram-1.3.4c1.0.js", "Resource=1", "RecContentType=application/javascript", "Referer=http://www.baidu.com/", "Snapshot=t71.inf", LAST); web_url("home-2.5.js", "URL=http://s1.bdstatic.com/r/www/cache/global/js/home-2.5.js", "Resource=1", "RecContentType=application/javascript", "Referer=http://www.baidu.com/", "Snapshot=t72.inf", LAST); web_url("u-1.3.4.js", "URL=http://s1.bdstatic.com/r/www/cache/user/js/u-1.3.4.js", "Resource=1", "RecContentType=application/javascript", "Referer=http://www.baidu.com/", "Snapshot=t73.inf", LAST); web_concurrent_end(NULL); web_url("i-1.0.0.png", "URL=http://s1.bdstatic.com/r/www/img/i-1.0.0.png", "Resource=1", "RecContentType=image/png", "Referer=http://www.baidu.com/", "Snapshot=t70.inf", LAST); web_concurrent_start(NULL); web_url("su", "URL=http://suggestion.baidu.com/su?wd=&cb=window.bdsug.sugPreRequest&sid=1431_2031_1944_1788&t=1362056977341", "Resource=1", "RecContentType=baiduapp/json", "Referer=http://www.baidu.com/", "Snapshot=t74.inf", LAST); web_url("favicon.ico", "URL=http://www.baidu.com/favicon.ico", "Resource=1", "RecContentType=image/x-icon", "Referer=", "Snapshot=t75.inf", LAST); web_concurrent_end(NULL); return 0; } |
script是loadrunner的缺省模式,即默认模式,也就是通常说的高层次模式,一般优先选择这种模式这种模式录制的脚本相对简短,便于阅读。它把类属一个页面的请求放在一个web_url中。
Url-based
script即通常所说的低层次录制模式,这种模式录制的脚本相对长,不利于阅读,但脚本更直观,它把客户端向服务器端发送的每一个请求都放在一个单独的web_url中,即一个请求对应一个web_url,页面和图片分别生成对应的web_url,相对Html_based
script模式把类属一个页面的请求放在一个web_url中的方式,Url-based
script模式的脚本更直观。
如何从脚本辨别使用哪种模式录制?
我们可以从脚本web_url中“mode”的值区分,Html_based
script模式下mode的值为“html”,Url-based
script模式下mode的值为“http”。还有Html_based
script模式记录为web_submit_form,而Url-based
script模式记录为web_submit_data。
两种录制方式优点对比:
(一)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等并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-Based
Script方式录制。
4、基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-Based
Script方式录制。
相关文章推荐
- 3.2.10: 设置和获取html,文本和值(*)
- 关于html中的doctype的重要性的认知以及IE的浏览器模式与文档模式
- IHTMLDocument2 TO IWebBrowser2
- 给TRAC项目添加注册模块和使用html方式登录
- 语义化你的HTML 标签
- html学习记录
- html 手机点击事件弹出层
- 常用html元素总结
- HTML实现“摇一摇”效果
- Html.Partial和Html. RenderPartial用法
- 为何在有 DOCTYPE 的 HTML 文档之上仍然还会出现混杂模式?
- @RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderAction的作用和区别
- Razor: @Html.Partial() vs @RenderPage()
- NopCommerce 导航菜单HTML静态处理以提高性能
- html鼠标指针变化控制
- 验证字符串中是否存在html标签
- HTML 最简单的tips 怎么支持指定DIV显示提示信息
- 在HTML页面中插入Flash
- 在线HTML编辑器的引入
- HTML DOM