(十三)性能测试从零开始——LoadRunner入门

 

5.2  录制脚本
        VU通过录制用户在客户端软件的操作来直接生成脚本,用户的每个协议级的操作以LoadRunner的API函数方式记录在脚本里。回放脚本的时候,通过执行API函数来模拟最初用户的操作动作。
5.2.1  选择协议
        选择协议的两个基本原则已经在前文介绍过了。我们这里看看LoadRunner具体有哪些协议。
        Vuser类型可根据应用领域分为下列几种:
 应用程序部署解决方案:Citrix ICA。
 客户端/服务器:DB2 CLI、DNS、Informix、MS SQL Server、ODBC、Oracle(2层)、Sybase Ctlib、Sybase Dblib和Windows Sockets协议。
 自定义:C模板、Visual Basic模板、Java模板、JavaScript和VBScript类型的脚本。
 分布式组件:适用于COM/DCOM、Corba-Java和Rmi-Java协议。
 电子商务:FTP、LDAP、Palm、PeopleSoft 8 mulit-lingual、SOAP、Web(HTTP/HTML)和双Web/WinSocket协议。
 Enterprise Java Bean:EJB测试和Rmi-Java协议。
 ERP/CRM:Baan、Oracle NCA、PeopleSoft-Tuxedo、SAP-Web、SAPGUI、
 Siebel-DB2 CLI、Siebel-MSSQL、Siebel-Web和Siebel-Oracle协议。
 传统:终端仿真(RTE)。
 邮件服务:Internet邮件访问协议(IMAP)、MS Exchange(MAPI)、POP3和SMTP。
 中间件:Jacada和Tuxedo(6、7)协议。
 流数据:Media Player(MMS)和Real协议。
 无线:i-Mode、VoiceXML和WAP协议。
        当我们试图创建一个新的Vuser的时候,就会弹出协议选择对话框,如图5-2所示。

1.JPG

图5-2  VU协议选择对话框
        有两种协议选择方式:单协议模式(New Single Protocol Script)和多协议模式(New Multiple Protocol Script)。
(1)单协议模式
        当用户以单协议录制时,VU只录制在既定协议上的用户操作,在VU中我们可以使用单协议模式选择任何一种协议。
(2)多协议模式
        当用户以多协议录制时,VU录制几个协议上的操作。并不是任意的协议都可组合成多协议模式。有以下协议支持多协议录制:COM、FTP、IMAP、Oracle NCA、POP3、Real Player、Windows Socket(raw)、SMTP和Web。双协议Web/Win Socket应该被看做是单协议,因为其机制与多协议还是不一样的。
        不同类型的Vuser的另外一个区别是多Action的支持,一些协议支持多Action,目前这些协议是:Oracle NCA、Web、RTE、general C、WAP、I-Mode和voice XML。关于多Action是何物,又如何使用,可以参看本章“多Action”一节。

5.2.2  规划脚本结构
        在录制时,用户可以选择哪些操作生成脚本在vuser_init、Action和vuser_end中,同时,也可以在录制时随时加入transaction的定义、注释和同步点。VU录制工具条如图5-3所示。
2.JPG

图5-3  VU录制工具条
5.2.3  HTTP Vuser中的URL mode和HTML mode
        在录制之前,我们需要设置录制选项,如图5-4所示。
3.JPG

图5-4  VU录制设置选项
        在默认情况下,选择“HTML-based script”,说明脚本中采用HTML页面的形式来表示,这种方式的Script脚本容易维护,容易理解,推荐以这种方式录制。
“URL-based script”说明脚本中的表示采用基于URL的方式,所有的HTTP的请求都会被录制下来,单独生成函数,所以URL模式生成的脚本会显得有些杂乱。
  实例
        以HTML模式录制,访问“http://newtours.demoaut.com/”网站会生成下面的脚本:
Action()
{
  web_url("newtours.demoaut.com",
    "URL=http://newtours.demoaut.com/",
    "Resource=0",
    "RecContentType=text/html",
    "Referer=",
    "Snapshot=t1.inf",
    "Mode=HTML",
    LAST);
  return 0;
}
以URL模式录制同样的操作,会生成如下脚本:
Action()
{
  web_url("newtours.demoaut.com",
    "URL=http://newtours.demoaut.com/",
    "Resource=0",
    "RecContentType=text/html",
    "Referer=",
    "Snapshot=t1.inf",
    "Mode=HTTP",
    LAST);

  web_url("logo.gif",
    "URL=http://newtours.demoaut.com/images/nav/logo.gif",
    "Resource=1",
    "RecContentType=image/gif",
    "Referer=http://newtours.demoaut.com/",
    "Snapshot=t2.inf",
    LAST);

  web_url("html.gif",
    "URL=http://newtours.demoaut.com/images/nav/html.gif",
    "Resource=1",
    "RecContentType=image/gif",
    "Referer=http://newtours.demoaut.com/",
    "Snapshot=t3.inf",
    LAST);

  web_url("boxad1.gif",
    "URL=http://newtours.demoaut.com/images/nav/boxad1.gif",
    "Resource=1",
    "RecContentType=image/gif",
    "Referer=http://newtours.demoaut.com/",
    "Snapshot=t4.inf",
    LAST);
........................................
..........................................
//经统计,录制生成的web_url函数有20个
return 0;
}
 是选择HTML还是URL录制,有以下参考原则:
(1)基于浏览器的应用程序推荐使用HTML-based script。
(2)不是基于浏览器的应用程序推荐使用URL-based script。
(3)如果基于浏览器的应用程序中包含了JavaScript并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-based script方式录制。
(4)基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-based script方式录制。
5.2.4  查看日志
        在录制和回放的时候,VU会分别把发生的事件记录成日志文件,这些日志有利于我们跟踪VU和服务器的交互过程。我们可以通过VU输出窗口观察日志,也可以到脚本目录中直接查看文件。其中有三个主要的日志对我们的录制很有用:
1.执行日志(Execution Log)
        脚本运行时的输出都记在这个Log里。
        “输出”窗口的“执行日志”显示的消息用于描述Vuser运行时执行的操作。该信息可说明在方案中执行脚本时,该脚本的运行方式。
        脚本执行完成后,可以检查“执行日志”中的消息,以查看脚本在运行时是否发生错误。
        “执行日志”中使用了不同颜色的文本。
 黑色:标准输出消息。
 红色:标准错误消息。
 绿色:用引号括起来的文字字符串(例如URL)。
 蓝色:事务信息(开始、结束、状态和持续时间)。
        如果双击以操作名开始的行,光标将会跳到生成的脚本中的相应步骤上。
        图5-5显示了Web Vuser脚本运行时的“执行日志”消息。
        执行日志是我们调试脚本时最有用的信息。有关设置执行日志级别调试脚本的技巧,在本章“高级——脚本调试技巧”一节中有详细介绍。
2.录制日志(Recording Log)
        当录制脚本时,Vugen会拦截Client端(浏览器)与Server端(服务器)之间的对话,并且通通记录下来,产生脚本。在Vugen的Recording Log中,我们可以找到浏览器与服务器之间所有的对话,包含通信内容、日期、时间、浏览器的请求、服务器的响应内容等,如图5-6所示。脚本和Recording Log最大的差别在于,脚本只记录了Client端要对Server端所说的话,而Recording Log则是完整记录二者的对话。因此通过录制日志,我们能够更加清楚地看到客户端与服务器的交互,这对我们开发和debug脚本非常有帮助。

4.JPG

图5-5  VU脚本执行日志

5.JPG

图5-6  VU脚本录制日志
3.产生日志(Generation Log)
        产生日志记录了脚本录制的设置、网络事件到脚本函数的转化过程。
        提示 :这里同样需要注意的是:脚本能正常运行后应禁用日志。因为产生及写入日志需占用一定资源。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章