LoadRunner用户行为模拟器 《第三篇》

来源:互联网 发布:模糊算法 疲劳识别 编辑:程序博客网 时间:2024/06/05 04:21

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

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

  所以可以有如下结论:

  1. VU不关心用户在界面发生的事情(如用户鼠标移动、填写WebForm数据)等。
  2. 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模式生成的脚本显得有些杂乱。

复制代码
Action(){    web_url("Login",         "URL=http://127.0.0.1:9090/Account/Login",         "Resource=0",         "RecContentType=text/html",         "Referer=",         "Snapshot=t1.inf",         "Mode=HTML",         LAST);}
复制代码

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

复制代码
Action(){    web_url("Login",         "URL=http://127.0.0.1:9090/Account/Login",         "Resource=0",         "RecContentType=text/html",         "Referer=",         "Snapshot=t1.inf",         "Mode=HTTP",         LAST);    web_url("Default.css",         "URL=http://127.0.0.1:9090/Resources/CSS/Default.css",         "Resource=1",         "RecContentType=text/css",         "Referer=http://127.0.0.1:9090/Account/Login",         "Snapshot=t4.inf",         LAST);    web_url("gwu1.jpg",         "URL=http://127.0.0.1:9090/Resources/Images/login/gwu1.jpg",         "Resource=1",         "RecContentType=image/jpeg",         "Referer=http://127.0.0.1:9090/Account/Login",         "Snapshot=t5.inf",         LAST);  ... 省略N个}
复制代码
0 0
原创粉丝点击