首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【松勤软件性能测试】LoadRunner用户行为模拟器

诚信丨进取丨合作丨创新

招进松勤,送去企业 你若有梦,松勤有心

自动化测试班

今晚就开课啦

预报名,请从速

关注撩小编,咨询课程~

用户行为模拟器简称VU,VU通过运行VU脚本模拟了用户对软件的操作行为。VU是基于网络协议的。很明显,被测服务器是通过各种各样的网络协议与客户端打交道的。VU要“骗过”被测服务器,当然就要遵守这些协议,按规矩、按步骤来执行动作,否则就会吃“闭门羹”。

基于网络协议的脚本的一个好处是,我们可以使用相对少的硬件资源,来生成大量的虚拟用户负载。相比之下,WinRunner和QTP脚本时基于界面事件的,它在一台主机上同时只能运行一个虚拟用户的脚本,因为一个虚拟用户会占用整个主机的资源。

所以可以有如下结论:

VU不关心用户在界面发生的事情(如用户鼠标移动、填写WebForm数据)等。

VU中的操作关联与界面上的操作关联是不一致的。如正常用户的操作是,打开列表页,点击一行进入详细页面。而LoadRunner只记录一个请求,以及这个请求的参数直接进入,对它来说根本没有打开列表页的步骤。

一、录制脚本

VU通过录制用户在客户端软件的操作来直接生成脚本,用户的每个协议级的操作以LoadRunner的API函数方式记录在脚本里。回放脚本的时候,通过执行API函数来模拟最初用户的操作动作。

1、选择协议

协议有好多种,是用哪种协议当时你开发的时候你自然会知道。目前我一般用的都是Web(HTTP/HTML)协议。

当我们试图创建一个新的VUser的时候,就会弹出协议选择对话框。

有两种协议选择方式:单协议模式和多协议模式。

(1)、单协议模式:当用户以单协议录制时,VU只录制在既定协议上的用户操作,在VU中我们可以使用单协议模式选择任何一种协议。

(2)、多协议模式:当用户以多协议录制时,VU录制几个协议上的操作。并不是任意的协议都可以组合成多协议模式。

2、规划脚本结构

在录制时,用户可以选择哪些操作生成脚本在vuser_init、Action和vuser_end中,同时,也可以在录制时随时加入transaction的定义、注释和同步点。VU录制工具条如下所示:

3、HTTP Vuser中的URL mode和HTML mode

在录制之前,我们需要设置录制选项:

在默认情况下,选择“HTML-based script”,说明脚本中采用HTML页面的形式来表示,这种方式的Script脚本容易维护,容易理解,推荐以这种方式录制。

“URL-based script”说明脚本中的表示采用基于URL的方式,所有的HTTP的请求都会被录制下来,单独生成函数,所以URL模式生成的脚本显得有些杂乱。

而以HTML模式录制,则生成如下脚本:

是选择HTML还是URL录制,有以下参考原则:

基于浏览器的应用程序推荐使用HTML-based script。

不是基于浏览器的应用程序推荐使用URL-based script。

如果基于浏览器的应用程序中包含了JavaScript并且该脚本向服务器产生了请求,比如DataGrid分页按钮等,也要使用URL-based script方式录制。

基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-based script方式录制。

4、查看日志

在录制和回放的时候,VU会分别把发生的事件记录成日志文件,这些日志有利于我们跟踪VU和服务器的交互过程。我们可以通过VU输出窗口观察日志,也可以到脚本目录中直接查看文件。

1、执行日志(Execution Log,新版本是Replay Log)

脚本运行时的输出都记在这个Log里。

“执行日志”中使用了不同颜色的文本。

黑色:标准输出信息。

红色:标准错误信息。

绿色:用引号括起来的文字字符串(例如URL)。

蓝色:事务信息(开头、结束、状态和持续时间)。

2、录制脚本(Recording Log)

当录制脚本时,Vugen会拦截Client端(浏览器)与Server端(服务器)之间的对话,并且通通记录下来,产生脚本。在Vugen的Recording Log中,我们可以找到浏览器与服务器之间所有的对话,包含通信内容、日期、事件、浏览器的请求、服务器的响应内容等。脚本和Recording Log最大的差别在于,脚本只记录了Client端要对Server端的请求内容,而Recording Log则是完整记录二者的对话。所以,通过录制日志,我们能够更加清楚地看到客户端与服务器的交互。

3、产生日志(Generation Log)

产生日志记录了脚本录制的设置、网络事件到脚本函数的转化过程。

提示:脚本能正常运行后应禁用日志。因为产生及写入日志需占用一定资源。

二、回放脚本

单击run按钮,或按快捷键“F5”就可以运行脚本。VU脚本运行工具条如下:

录制完成之后,最好先运行一次脚本,因为在跑测试之前必须先确保脚本没有错误。

三、关联

关联的作用是客户端每次的访问,服务器都会有动态的内容产生,如果这个动态内容跟不上,则服务器就报错的情况。如SessionId,假如每次访问,服务器都为其分配一个session号(随机的)导致报错时,此时就要对seesion做关联。

这个看起来好像很难的样子,先跳过, 用到再学。

四、脚本视图和树视图

VU提供两种视图来查看脚本的内容,一个是脚本视图,另一个是基于图标的树视图。

所有类型的Vuser都有文本脚本视图,但是只有特定的Vuser才会有树视图。

1、树视图(Tree View)

Tree View也叫做基于icon的View,也就是说,脚本的每个函数在Tree View中都以一个带有icon的节点来代替。可以点击工具栏=>"Tree"按钮或者在“View”=>“Tree View”,显示VU树视图。

Tree View的好处是使用户更方便地修改脚本,Tree View支持拖拽,用户可以把任意一个节点拖拽到他想要的地方,从而达到修改脚本的目的。用户可以右键单击节点,进行修改/删除当前函数参数属性,增加函数等操作,通过Tree View能够增加LoadRunner提供的部分常用通用函数和协议相关函数。比如Web Service Vuser就不能通过Tree View参数化一些复杂的数据类型,在这种情况下,就需要Script View了。

2、脚本视图(Script View)

在Script View中能够看到一行行的API函数,Script View适合一些高级用户,通过Script View向脚本中增加一些其他的API函数。可以单击工具栏上的"Script"按钮或者在"View"菜单下选择"Script View",显示VU脚本视图。

当用户在Script View中对脚本做了修改之后,Tree View也会做相应的变化。如果脚本有语法错误,Script View将不能转化为Tree View或缩略图。

3、理解Snapshot

napshot,顾名思义,就是快照,代表当前的step,Snapshot显示了客户端执行完当前step后的样子,在Tree View右侧的frame中可以查看Snapshot,在LoadRunner 8.0中,Snapshot包含Page View、Client Request和Server Response。

Snapshot有两种生成方式,一种是在record的时候生成,另一种是在replay的时候生成。可以对比两种方式生成的Snapshot,以发现哪些是动态值,需要参数化。

关注“松勤软件学院”

松勤

学习技术,多问问题,和松勤一起成长

点赞加鸡腿

留言涨工资

分享包对象

小编能否走上人生巅峰

拜托正在看文的你

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180516B1BA0T00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券