LoadRunner创建测试脚本教程ThisentrywaspostedbyadminMonday,19April,2010开发LoadRunner脚本需要经过图2-1所示的几个步骤。在录制脚本时要遵循以下录制原则:1.提高脚本执行效率所录制的脚本内容要精练,而且是用户的真实操作,不可增加多余或重复性的操作,这样的脚本执行起来更能准确地模拟用户的真实行为,减少了执行时间,执行结果更准确。2.录制具有代表性的功能在一个软件中有很多不同的功能,但要录制所有的功能几乎是不可能的,所以要选择常用的、使用频率较高的业务功能来进行测试。3.选择具有影响的事务测试人员要对被测功能具有一定的认识和了解,选择一些对于整个测试过程中有影响的事务来测试,否则测试结果是无意义的。当启动VisualUserGenerator后会出现选择脚本类型的对话框,在此对话框中,请选择我们常用的脚本类型,也就是Web(HTTP/HTML)协议,这是最为常见的。以下脚本介绍以此类型为例。2.1.1录制普通脚本启动VisualUserGenerator,在弹出的对话框中选择需要新建的协议脚本,通过VuGen可以采用单协议或多协议模式,进行脚本的录制。选择单协议还是多协议,根据测试程序的实际需要而定。1.选择协议采用单协议模式时,VuGen将只录制指定的协议;采用多协议模式时,VuGen将录制多个协议中的操作。下列协议支持多协议脚本:COM、FTP、IMAP、OracleNCA、POP3、RealPlayer、WindowSockets(原始)、SMTP和Web。“双协议Web/WebServices”的引擎使用一种不同的机制,应视为单协议,不能与其他多协议类型结合使用。各种Vuser类型之间的另一个区别是多操作支持功能。大多数协议都可支持多个操作部分,如OracleNCA、Web、RTE、General(CVusers)、WAP、i-Mode和VoiceXML等协议。对于大多数Vuser类型,在每次录制时都会新建一个Vuser脚本,而不能在现有脚本中进行录制。但是,在录制Java、CORBA-Java、RMI-Java、Web、WAP、i-mode、VoiceXML、OracleNCA或RTEVuser脚本时,可以在现有脚本中进行录制。创建脚本时,单击“New”(新建)打开“NewVirtualUser”(新建Vuser)对话框,该对话框可提供选择录制脚本协议的快捷方式。(1)单协议脚本:创建单协议Vuser脚本,这是“Startup”(启动)对话框打开时的默认选项。从Vuser生成器的“类别”中进行选择,并选择录制脚本的协议,如图2-2所示。图2-2选择单协议脚本(2)多协议脚本:创建多协议Vuser脚本,VuGen将显示所有可用的协议。选择一个协议后,单击右箭头,将其移入“SelectedProtocols”(选定的协议)部分中,如图2-3所示。图2-3选择多协议脚本(3)使用最近使用过的协议新建脚本:从最近创建脚本的协议中选择已经使用过的协议,并且这些协议已经体现了录制脚本类型,如图2-4所示。图2-4选择最近使用的协议2.开始录制假设需要测试的是Web应用,选择“Web(HTTP/HTML)”协议,单击“OK”按钮确定后,进入主窗体,如图2-5所示。图2-5录制结果的主窗体单击工具栏中“StartRecord”按钮,根据录制的对话框,输入要测试程序的地址,开始进行录制。通过“Vuser”菜单来启动录制脚本的命令,如图2-6所示。图2-6选择录制按钮也可以在工具栏中直接单击“StartRecording”按钮,但录制之前还要进行相应的设置,如图2-7所示。图2-7录制配置界面(1)环境设置首先,勾选“Recordtheapplicationstartup”,单击“OK”后,就会自动启动要测试的程序,还可以选择要把录制的脚本放到哪一个部分,默认情况下是“Action1”。然后,单击左下角的“Options”按钮,进入录制环境设置界面,如图2-8所示。Ÿ“Recording”标签页:默认情况下选择“HTML-basedScript”,说明脚本中采用HTML页面的形式,这种方式的Script脚本容易维护和理解,推荐用这种方式录制。“URL-basedScript”说明脚本中的表示采用基于URL的方式,WAS和ACT中的录制方式就是这种,这种方式看上去比较乱。其他标签页功能说明如下,如有需要可作相应的设置。Ÿ“Browser”标签页:浏览器的选择。Ÿ“RecordingProxy”标签页:浏览器上的代理设置。图2-8环境设置界面Ÿ“Advanced”标签页:可以设置录制时的思考时间(ThinkTime)、支持的字符集标准等。Ÿ“Correlation”标签页:手工设置关联,通过关联可在测试执行过程中保存动态值。使用这些设置可以配置VuGen在录制过程中执行的自动关联的程度。(2)脚本内容在录制过程中,可以单击“Pause”(暂停录制)按钮,在脚本中插入事务、注释和集合,防止在录制完成后再插入这些事务找不到具体位置。当业务流程完成后,单击“Stop”(停止录制)按钮,会自动生成脚本,退出录制过程,如图2-6所示。单击“Save”(保存)按钮,起个与实际业务有关系的名字,保存到相应的位置。使用VuGen录制之后生成的每个Vuser脚本都至少包含vuser_init、一个或多个Actions及vuser_end等三部分。在通常情况下,将登录到服务器的活动记录在vuser_init部分中,将客户端活动录制到Actions部分中,并将注销过程录制到vuser_end部分中。因为运行多次迭代的Vuser脚本时,只有脚本的Actions部分重复,而vuser_init和vuser_end部分将不重复。脚本图例如图2-9所示。图2-9脚本图例在录制脚本期间,发出的消息可以通过日志来查看,选择“View”“OutputWindow”,然后选择“RecordingLog”选项卡。可以在“RuntimeSetting”的“Log”选项卡中设置该日志的详细级别,如图2-10所示。图2-10录制日志录制时,VuGen会创建一系列配置、数据和源代码文件。这些文件包含Vuser运行时和设置信息。VuGen会将这些文件连同脚本一起进行保存。至此,一个完整的Vuser脚本录制完成。多协议脚本的录制与单协议脚本的录制过程基本相同,只是比单协议脚本的录制多一个选项界面,如图2-11所示。在此界面中单击协议,可以进行添加和删除协议的操作。在协议前的复选框中打对号,即为选中,否则删除。图2-11添加协议2.1.2录制WebServices脚本在进行性能测试时,大部分对Web性能测试,选择“Web(HTTP/HTML)”协议即可,但录制完脚本后,回放脚本过程中有时会发生中断或停止的情况,查看错误时,如果无法找到SOAP文件字样时,就需要考虑更换脚本录制协议了。通常首先考虑更换WebServices协议,再次录制脚本,问题就相应解决了。在录制WebServices脚本前,首先对WebServices做一个简要的介绍,这样有助于读者或者测试人员能够更好地利用WebServices协议录制脚本。1.什么是WebServicesWebServices是一种构建应用程序的普通模型,并能在所有支持Internet通信的操作系统上实施运行。WebServices令基于组件的开发和Web的结合达到最佳,基于组件的对象模型,如:分布式组件对象模型(DistributedComponentObjectModel,DCOM)、远程方法调用(RemoteMethodInvocation,RMI)、互联网内部对象请求代理协议(InternetInter-OrbProtocol,IIOP)都已经发布很长时间,但是它们都依赖于特殊对象模型协议。而WebServices利用SOAP和XML对这些模型在通信方面作了进一步的扩展,以消除特殊对象模型的障碍。进一步地,WebServices还基于HTTP和SOAP协议,使得Web用户通过Web调用的方法使用SOAP和HTTP来调用远程对象,确保业务数据得以在Web上传输。2.WebServices结构客户根据WSDL描述文档,会生成一个SOAP请求消息。WebServices都是放在Web服务器(如IIS)后面的,客户生成的SOAP请求会被嵌入在一个HTTPPOST请求中,发送到Web服务器,Web服务器再把这些请求转发给WebServices请求处理器。请求处理器的作用在于,解析收到的SOAP请求,调用WebServices,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把信息送回到客户端。3.WebServices体系WebServices体系主要包括以下几个方面:(1)WebServices包括3种组件。服务提供者:提供服务,进行注册以使服务可用;服务代理者:服务交换所,服务提供者和服务请求者之间的媒体;服务请求者:向服务代理请求服务,调用这些服务创建应用程序。(2)WebServices提供3种操作。发布/不发布(Publish/Unpublish):服务提供者向服务代理者发布(注册)服务或不发布(移去)这些服务的注册;发现(Find):由服务请求者向服务代理者执行发现操作,服务请求者描述要找的服务,服务代理者分发匹配的结果;绑定(Bind):在服务请求者和服务提供者之间绑定,这两部分协商以使请求者可以访问和调用提供者的服务。(3)UDDI规范统一描述、发现和集成(UniversalDescriptionDiscoveryandIntegration,UDDI)是一个WebServices的信息注册规范,基于UDDI的WebServices注册可以被发现。UDDI的核心部分是UDDI业务登记逻辑,即在Web上有一种分布的注册服务,这种服务以一种通用的XML格式进行描述。通过XML中的结构化描述,可以很方便地在互联网上发现需要的数据,进而方便进行分析和操作。从概念上看,一个UDDI业务登记逻辑所提供的信息包括三个部分:“白页”包括地址、协议和已有标识;“黄页”包括基于分类标准的工业类型;“绿页”是关于企业所包含的服务技术信息,包括网络服务说明参考和根据发现机制对各种文件和网址提供的标识支持。(4)网络服务描述语言(WSDL)网络服务描述语言(WebServicesDescriptionLanguage,WSDL)遵循XML语法,为服务提供者提供了描述构建在不同协议或编码方式之上的WebServices请求基本格式的方法。WSDL用来描述一个WebServices能做什么,它的位置在哪里,如何调用它等。在假定以SOAP/HTTP/MIME作为远程对象调用机制的情况下,WSDL会发挥最大作用。UDDI注册描述了WebServices绝大多数方面,包括服务的绑定细节。WSDL可以看作是UDDI服务描述的子集。WSDL将服务定义为一个网络端点的集合,或者说端口的集合。在WSDL里面,端点及消息的抽象定义与它们具体的网络实现和数据格式绑定是分离的。这样就可以重用这些抽象定义:消息(需要交换的数据的抽象描述)和端口类型(操作的抽象集合)。针对一个特定端口类型的具体协议和数据格式规范构成一个可重用的绑定。一个端口定义成网络地址和可重用的绑定的连接,端口的集合定义为服务。因此,一个WSDL文档在定义WebServices时使用如下的元素:类型——使用某种类型系统定义数据类型的容器;消息——通信数据抽象的有类型的定义;操作——服务支持动作的抽象描述;端口类型——操作的抽象集合,该操作由一个或多个端点支持;绑定——针对一个特定端口类型的具体协议规范和数据格式规范;端口——单一的端点,定义成一个绑定和一个网络地址的链接;服务——相关端点的集合。不难看出,WSDL给客户提供了一个模板,方便客户描述和绑定服务。上面简单介绍了WebServices基本的知识,下