LoadRunner在一个面向目标的方案中,可以定义五种类型的目标:虚拟用户数、每秒点击数(仅WebVuser)、每秒事务数、每分钟页面数(仅Web
Vuser)或事务响应时间。要定义每秒事务数或事务响应时间目标类型,脚本中必须包含事务。对于每种目标类型,可以定义脚本中希望测试的事务。
1. 虚拟用户目标类型:测试应用程序可以同时运行多个Vuser。
2. 每秒点击数、每分钟页面数或每秒事务数:测试服务器的稳定性。需要指定LoadRunner运行的Vuser范围(最大值、最小值),以及每秒事务数目标类型“事务名称”。Controlle(测试工具的主控台)将尽量使用最少数量的Vuser来达到定义的目标。如果使用最小Vuser数不能达到该目标,则Controller将逐渐增加Vuser数,直到达到所定义的最大数。如果使用指定的最大Vuser数仍不能达到指定的目标,Controller将增加Vuser,并再次执行方案。
3. 事务响应时间目标类型:测试在期望的事务响应时间内可以同时运行多少个Vuser,在脚本中指定想要测试的事务名称以及LoadRunner要运行的
Vuser数量范围(最大值、最小值)。指定的“事务响应时间”应该是一个预定义的阈值。例如,如果希望用户在5秒钟之内登录到某个电子商务站点,请将可接受的最长事务响应时间指定为5秒。将最大和最小Vuser数设置为希望能够同时提供服务的最大和最小用户数。如果方案没有达到定义的最大事务响应时间,则服务器能够在合理的时间间隔内,对想要同时提供服务的指定数量的用户作出响应。如果在仅执行部分Vuser后就达到定义的响应时间,或如果接收到消息,提示如果Controller使用定义的最大Vuser数,响应时间将走出指定值,那么应该考虑修补应用程序和/或升级服务器的软硬件。
方案的主要内容是确定如何开展测试,以准确描绘用户行为(操作类型和这些操作的计时等,由Vuser脚本表示)。可以在一段延迟之后开始执行方案。可以指定LoadRunner自发出Run命令以来等待的分钟数,也可以指定让方案开始的特定时间。使用计划生成器,可以对手动方案进行计时设置,从而限制方案的执行持续时间,或Vuser组在方案中的持续时间。通过指定方案或Vuser组应处于“正在运行”状态的数分钟数,可以限制执行持续时间。方案或组到达其时间限制时就结束。对于手动方案,还可以规定在某一时间段内LoadRunner启动和停止的Vuser的数量。在指定的时间量内,可以指定
LoadRunner应同时启动/停止,Vuser组中所有的Vuser,还是仅启动/停止一定数量的Vuser。需要注意的是,Vuser脚本中的集合点将干扰已计划好的方案。如果脚本中包含集合点,则方案将不会按计划运行。
在方案运行期间,可以通过使用集合点指示多个Vuser同时执行任务。集合点可以在服务器上创建密集的用户负载,并使LoadRunner能够测量服务器在负载状态下的性能。假设有10个Vuser同时检查帐户信息时,需要估量某个基于Web的银行系统如何执行操作,为了模拟服务器上要求的用户负载,可以指示所有的Vuser完全同一时刻检查帐户信息。通过创建集合点,可以确保多个Vuser同步操作。当Vuser到达某个集合点时,它就会被
Controller滞留在该处。当达到要求的Vuser数或者经过一段指定的时间后,Controller就会从集合中释放Vuser。
通过使用Controller,可以根据如下选择来影响服务器的负载级别:
* 选择在方案运行过程中活动的集合点;
* 选择加入每个集合的Vuser数。
例如,要测试银行服务器,可以创建一个包含两个集合点的方案。第一个集合可以确保1000个Vuser能同时存入现金。第二个集合可以确保另外1000个
Vuser能同时提取现金。如果需要在只有500个Vuser存入现金的情况下度量服务器的性能,可以停用(禁用)“提取”集合,并指示仅让500个
Vuser参加“存入”集合。下面的过程概述了如何控制服务器上的负载峰值。
创建Vuser脚本,插入必需的集合点。
创建方案。
向方案中添加Vuser组时,LoadRunner扫描与该组相关的脚本,在其中搜索集合点的名称,并将这些名称添加到“集合信息”对话框中的列表里。如果创建另外一个运行相同脚本的Vuser组,Controller会将该新的Vuser添加到集合中,并更新列表。
设置模拟用户负载的级别。
通过选择将加入到方案中的集合点,以及加入每个集合的Vuser,可以确定负载的精确级别。<!--[endif]-->
设置集合的属性。
对每一个集合,都可以设置集合策略。
运行方案。
在运行方案之前,可以同时配置方案的负载生成器和Vuser行为。虽然默认设置与大多数环境对应,但是LoadRunner允许修改这些设置,以便自定义方案行为。这些设置适用于所有未来的方案运行,并且通常只需设置一次。如果全局方案设置与单个负载生成器的设置不同,则负载生成器设置将替代全局方案。
软件测试工程师只有程序设计和开发工具的知识是不够的,必须要懂得系统运转的机理。要具备应用平台、软件架构、数据库系统以及网络环境等方面的知识,这样才能做到尽量分析错误和定位错误。 |