Test8848软件测试学苑.软件测试技术网站,软件测试培训
技术资料
技术资料
您当前的位置:首页 > 技术资料

LoadRunner-基于目标和手动场景测试有何联系和不同

日期:2019-03-13
  1. 问题提出

  在应用LoadRunner的Controller设计性能测试场景时,有两种方式:手工方式和基于目标方式,这两种方式的使用场合和区别是什么?

  2. 问题解答

  要使用LoadRunner进行系统性能测试,对系统进行负载,就必须创建一个场景。场景中包含关于测试会话信息的文件。场景是一种模拟实际用户的方式。场景包含有关如何模拟实际用户的信息:虚拟用户组、测试脚本以及用于运行这些脚本的负载生成器计算机。LoadRunner提供两种方式:手动设计场景(manual scenario)和面向目标设计场景(goal-oriented scenario)。手动设计场景可以通过建立组并指定脚本、负载生成器和每个组中包括的Vuser数来完成;还可以通过百分比模式手动建立场景,使用此方法建立场景可以指定场景中使用的Vuser总数,并为每个脚本分配负载生成器和占总数一定百分比的Vuser。

  如果选择创建常规手动场景,则在“新场景设计”对话框中选择的每个脚本将被分配给Vuser组,如下图所示。

  然后,可以为每个Vuser组分配多个虚拟用户。可以指定一个组中的所有Vuser在同一台负载生成器计算机上运行相同的脚本,也可以为一个组中的各个Vuser分配不同的脚本和负载生成器。如下图所示。

  如果选择面向目标场景设计,则在“新场景设计”对话框中同时选择该选项和脚本,如图所示。

  在面向目标的场景设计中,可以定义要实现的测试目标,LoadRunner会根据这些目标自动构建场景。可以在一个面向目标的场景中定义希望场景达到的目标类型:虚拟用户数、每秒单击次数(仅Web Vuser)、每秒事务数、每分钟页面数(仅Web Vuser)或事务响应时间。可以通过单击【Edit Scenario Goal】设置目标类型、最小用户数、最大用户数、运行时间等。如下图所示。

  在上图中的【Goal Type】下拉列表框中可以选择虚拟用户数、每秒单击次数(仅Web Vuser)、每秒事务数、每分钟页面数(仅Web Vuser)或事务响应时间5种类型。可以设定目标,这里以100次/s作为测试的目标。可以设置为了要达到这个目标,需要运行的最小和最大用户数。在【Run Time】指定当目标达到以后继续运行的时间,在【Iftarget cannot be reached】中选择在测试目标达不到时的处理方式:【Stop scenario and save results】(指示Controller在无法达到定义的目标时停止场景并保存场景结果)或【Continue scenario without reaching goal】(指示Controller即使无法达到定义的目标,也要继续运行场景),选择【Receive notification】(指示Controller向用户发送一个错误消息,指明无法达到目标),如果希望LoadRunner使用脚本中录制的思考时间来运行场景,则选择【Do not change recorded think time】。

  在【Load Behavior】选项卡中可以选择3种不同的Vuswe加载方式,如图所示。

        l  Automatic:指示Controller运行一批中默认数量的Vuser(每两分钟运行50个Vuser,或者在定义的最大Vuser数少于50时运行所有的Vuser).
        l  Reach target number of hits per second after XXX HH:MM:SS:用来选择Controller达到目标之后场景运行的时间。
        l  Step up by XXX hit per second (对于每秒事务数和事务响应时间目标类型不可用):用来选择Controller达到定义的目标的速度(一定时间内的虚拟用户数/单击次数/页面数)。

  下面以每秒单击次数/事务数和每分钟页面数目标类型为例,在定义每分钟页面数或每秒单击次数/事务数目标类型时,Controller将用定义的目标值除以指定的最小Vuser数,并据此确定每个Vuser应该达到的每秒单击次数/事务数或每分钟页面次数的目标值。然后,Controller将根据定义的加载行为设置开始加载Vuser,具体表述为:如果选择自动运行Vuser,LoadRunner将在第一批加载50个Vuser。如果定义的最大Vuser数小于50,LoadRunner将同时加载所有的Vuser。如果选择在场景运行一段时间之后达到用户的目标,LoadRunner将尝试在这段时间内达到定义的目标。第一批Vuser数的大小将根据用户定义的时间限制以及计算得到的每个Vuser的单击次数、事务数或页面数的目标来确定。如果选择按指定的速度(一定时间内的页面数/单击次数)达到用户的目标,LoadRunner将计算每个Vuser的单击次数或页面数的目标值,并据此确定第一批Vuser的数量。运行每一批Vuser之后,LoadRunner都将评估是否已达到该批的目标。如果未能达到该批目标,LoadRunner将重新评估每个Vuser的单击次数、事务数或页面数的目标值,并重新调整下一批的Vuser数,以便能够达到定义的目标。注意,默认情况下,每两分种加载一批新的Vuser。如果Controller在运行最大数量的Vuser之后仍不能达到目标,LoadRunner将重新计算每个Vuser的单击次数、事务数或页面数的目标值,并且运行最大数量的Vuser,再一次尝试达到定义的目标。

  在下列情况下,面向每分钟页面数或每秒单击次数,事务目标的场景将被标注“失败”状态。
        l  Controller已经两次尝试使用指定的最大Vuser数来达到目标,却均未达到目标。
        l  在运行第一批Vuser之后,未注册每分钟页面数或每秒单击次数/事务数。
        l  在Controller运行了几批Vuser之后,每分钟页面数或每秒单击次数/事务数却未增加。
        l  所有Vuser都运行失败。
        l  没有可用于要尝试运行的Vuser类型的负载生成器。没有可用于要尝试运行的Vuser类型的负载生成器。