在一个面向目标的方案中,可以定义五种类型的目标:虚拟用户数、每秒点击次数(仅 Web Vuser)、每秒事务数、每分钟页面数(仅 Web Vuser)或方案的事务响应时间。
使用“编辑方案目标”对话框可以对方案目标进行定义。就是设置一个运行目标,在Controller中运行相关负载,如果测试的结果达到目标,则说明系统的性能符合测试目标,否则就提示无法到达目标。
目标场景是定性型的性能测试,我们只关心最后性能测试的结论是否符合性能需求,常常用在验收测试的场合。
1、下拉选择运行方式:
2、设置方式
3、摘自其他博客:
Virtual Users Goal:如果需要测试多少人可以同时运行Web应用,那么推荐定义Virtual Users Goal. 运行定义该目标类型的场景和运行Manual 类型的场景类似。
Hits per Second:如果想测试Web Server的真正实力,推荐定义目标类型为:Hits per Second,Pages per Minute 或者Transactions per Second,这些类型都需要制定一个虚拟用户的最大值和最小值的范围。Controller试图使用最少的虚拟用户来达到定义的目标。如果使用最少的用户,不能达到目标,Controller会自动增加用户数,知道定义的最大值人数。如果使用了最多的虚拟用户数,定义的目标还没有实现,那么需要增加最大用户数,重新执行场景。(这里我不知道这样情况下事停止还是系统会有提示?)
Transactions Response Time
如果想知道在多少用户并发访问网站时,事务的响应时间达到性能指标说明书中规定响应时间的最大值,那么推荐使用Transactions Response Time类型,指定需要测试的事务的名称,虚拟用户数量的最大值和最小值,还有预先定义好的事务的响应时间。在场景运行中,如果使用了最多的虚拟用户,还不能达到定义的最大响应时间,说明Web Server还有能力接纳定义的虚拟用户的最多数量;如果在使用了部分虚拟用户,就达到了定义的最大的响应时间,或者LoadRunner提示如果使用更多数量的虚拟用户时将要超过最大响应时间,那么需要重新设计或者修补应用程序,同时可能需要升级WEB SERVER的软硬件。
理解各种类型:
如果你定义的类型是Pages per Minute, Hits/Transactions per Second,Controller首先用定义的目标/最小用户数,得到一个值,就可以确定每个用户应该达到的Hits/Transactions per Second或是Pages per Minute,然后Controller开始按照以下的策略加载用户:
1.如果选择的是自动加载虚拟用户,LR会首先加载50个用户。如果定义的最大用户数小于50,LR就会一次性加载所有的虚拟用户。
2.如果选择的是在场景运行一段时间后达到目标,LR就会尝试在定义的这段时间内达到目标,根据时间限制和计算出的每个用户的hits, transactions或者pages,LR确定第一批加载用户多少。(不太理解这个)
3.如果选择的是按照一定的阶段达到目标(也就是先在X长时间内达到y pages/hits,然后再达到下一个目标),lr计算每个用户应该达到的数字后,再确定第一批加载多少用户。
每加载一批用户后,LR会判断是否达到这批用户的目标,如果这批用户的目标没有达到,LR重新计算每一个用户应该达到的目标数字后,重新调整下一批加载用户的数量,默认情况下,LR每两分钟加载一批用户。如果Controller加载了最多数量的用户还没有达到预定的目标,LR会重新计算每个用户的目标,然后同时运行最大数量的用户,尝试达到预定的目标。
如果出现以下情况,pages per minute,hits/transactions per second类型的场景会置于Failed状态:
1.controller使用了指定的最大数量的用户,并且两次都没有达到目标
2.所有的用户运行都失败
3.没有足够的load generators机器(现有的机器已经超载运行的情况下)
4.Controller增加了几批用户后,pages per minute 或者Hits/transaction per second 没有增加
5.Controller记载第一批用户后,定义的目标没有被捕捉到
【Automatic】:指示Controller运行一批中默认数量的Vuser(每两分钟运行50个Vuser,或者在定义的最大Vuser数少于50时运行所有的Vuser)。
【Reach target number of hits per second after XXX HH:MM:SS】:用来选择Controller达场景运行多久内达到预期目标时间。
【Step up by XXX hit per second】(对于每秒事务数和事务响应时间目标类型不可用):用来选择Controller达到定义的目标的速度(一定时间内的虚拟用户数/单击次数/页面数)。