@[toc]
1.录制原理
这里以Web(HTTP/HTML)协议为例:
VuGen录制浏览器主要是通过代理的方式来实现的。开始录制时,VuGen打开浏览器,并 以VuGen作为代理来访问目标服务器。这样,VuGen就可以捕获客户端与服务器之间通信的数据包。
在使用VuGen进行录制用户操作时,VuGen会对捕获的数据进行分析,并将其还原成对协议的由API组成的脚本。同时,VuGen会将这些函数生成的脚本插入到VuGen编辑器中,以创建原始的Vuser脚本。
2.脚本录制
点击录制按钮 ,或者点击菜单Record > Record,或者使用快捷键Ctrl+R,弹出Start Recording弹窗。如图:
Record into action:选择录制的脚本所存放的Action。
Record:选择录制脚本所用方式。
Application:和Record选项联动,根据Record选择的录制方式,显示该方式下可选的应用程序。
URL address:录制脚本网址。
Start recording:选择开始录制时机,可以立即开始录制,也可以延时开始录制。
Working directory:LoadRunner工作目录。
2.1录制选项
1.点击Recording Options
2.弹出Recording Options弹窗,在Recording Options窗口,可对录制参数进行设置。需要注意的设置项有:Recording选项卡和Advanced选项卡。
2.1.1 Recording选项卡页面
HTTP/HTML Level包含两种录制模式:HTML-based scrip和URL-based Script,如图所示,默认情况下选中HTML-based scrip录制方式。
1.HTML-based Script :
是LoadRunner的默认模式,也就是通常说的高层次模式,一般优先选择这种模式。
这种模式将每个页面录制形成一条语句,对LoadRunner来说,在该模式下,访问一个页面,首先会与服务器之间建立一个连接获取页面的内容,然后从页面中分解得到其他的元素(component),然后建立几个连接分别获取相应的元素。
这种模式把类属一个页面的请求放在一个函数中,为每个用户请求生成单独的函数,即:一个用户操作(可能包含多个请求)会生成一个函数。
这种模式录制出来的脚本看起来比较简洁,比较直观,易于理解和维护。
2.URL-based Script:
即通常说的低层次录制模式。
这种模式指导VuGen录制来自Server的所有请求和资源。它自动将每一个HTTP资源录制为URL的步骤。这种录制模式甚至抓取非HTML应用程序,例如applets和非浏览器的应用程序。对LoadRunner来说,在该模式下,一条语句只能建立一个到服务器的连接,并将通信过程中的很多隐藏的信息都录制出来(如session、cookie)。LoadRunner提供了web_concurrent_start()和web_concurrent_end()函数模拟URL-based Script的工作方式。
这种录制模式会生成很多函数,它把客户端向服务器端发送的每一个请求都放在一个单独的函数中,即一个请求对应一个函数,页面和图片分别生成对应的函数。这种模式更接近请求-响应的本质。
这种模式录制出来的脚本相对比较长,不利于阅读,好像将HTML模式中的一个函数拆分成了很多独立的函数一样。但是这种脚本的可伸缩性更强,记录了更详细的用户操作信息。
2.1.1.1 HTML-based Script选项
1.点击HTML Advanced
2.弹出Advanced HTML弹窗。
3.Advanced HTML弹窗中,Script type有两种类型:A script describing user actions(e.g. web_link,web_submit_form)和A script containing explicit URLs only(e.g. web_url,web_submit_data)。
A script describing user actions(web_link,web_submit_form)
基于解释用户行为的脚本,注重描述用户做了什么操作。类似于QTP,脚本简洁,基于用户操作模拟,浅显易懂,并且自身就包含了对象检查过程,无需校验。
A script containing explicit URLs only(web_url,web_submit_data)
基于URL请求的脚本录制类型,这种方式不考虑用户的操作,只考虑客户端发送的请求,注重于实际上系统做了什么。
2.1.1.2 Advanced选项卡页面
我们通常选中Support charset选项 选择UTF-8 防止录制出来的脚本出现乱码
3.任务总结
以上是对开始录制前的一些设置,可以使得我们更好的录制脚本