负载测试如何寻找"拐点"?使用哪种方法进行测试?

软件性能测试中有一类很重要的测试——负载测试,包括并发测试和容量测试。负载测试的重要工作在于找到系统的性能拐点。

1240

在并发测试中我们不断地增加事物的用户并发数,观察系统所可以接受的并发数是否与设置的并发数保持一致,或者在增加并发数的时候观察系统的响应时间是否在可接受的范围之内(比如<3秒》)。当并发数少的时候,实际并发数与设置并发数是一致的,当系统并发数达到一定的数量后,实际并发数保持恒定,不会受到设置并发数的增加而增加了。或者系统的响应时间会超过设定的目标值。如图一所示,A即为我们找到的并发测试的拐点。

1240

图一:负载测试的拐点

同样,在容量测试中,我们不断地往数据库中灌入数据,在开始数据量比较少的时候,系统的响应时间是在一定的可接受范围之内,但是当数据量达到一定的规模之后,系统响应的响应时间会远远高于设置的可接受范围之内。

如何去寻找性能负载测试中的拐点呢?我发现在许多公司采用的是逐步逼近法,即先设定一个预估值进行测试,观察系统的响应情况,然后增加一定的数量,观察系统的变化,直到系统超出我们所预估的值。

比如,在并发测试的时候,我们先预估设置并发用户为2000,然后以200的速度递增,检查系统的响应时间是否小与3秒,从而找出并发测试的系统拐点,数据如下:

1240

当系统设置并发数为5000的时候,系统响应时间为3.14秒,超出了可接受范围,我们就不继续增加了,在5000到4800中寻找一个中间值4900进行测试,测试结果为2.94秒,仍旧在可接受的范围之内,所以我们断定拐点一定在4900到5000之间,于是我们寻找4900与5000中的中间点4950进行测试,得到2.99这个结果,由于非常接近3了,且两次测量值的间隔在50之内(4950-5900=50)。

在实际工作中,当我们对系统响应时间没有或者无法预估的时候,我们也往往采取系统通过率是否在可接受范围之内来评测。一般系统通过率可接受范围 = 通过的事务数(Pass)/全体事务数(All) = 通过的事务数(Pass)/(通过的事务数(Pass)+错误事务数(Error)+失败事务数(Fail))*100%,是否在95%以上(含95)。同样我们拿上一个例子作为参考。

1240
1240

在这里系统的拐点为7150(一般设置通过的事务数在可接受的范围内,系统的拐点值回比其他方式高)。

容量测试找拐点也可利用这个方法,但是每次的递增值一定要尽可能的大。大家可以看见利用这种方法是可以找到系统拐点的,但是有一个很致命的问题,即速度很慢,如果预设的起始值远远小于拐点值,且每次的递增值有比较小的时候。那么我们有什么改进办法呢?见图二。

1240

图二:二分逼近法

在这里,我们先预估两个值m和n,其中m<n,取值公式为一个二元函数? (m,n)。

1.我们先用m来进行测试,如果测试不通过,我们可以确定,拐点值小于m,也可以说在0到m之间,所以我们1/2为a来作为最小值,重新递归二元函数? (m/2,n)即?(a,n)。

2.当m通过测试了,我们就用n值来进行测试,如果n值测试不通过,我们可以确定拐点在m与n之间,于是取(m+n)/2作为k值,重新递归二元函数? ((m+n)/2,n)即?(k,n)。

3.如果n值测试通过了,我们拐点比n大,找一个比n大的数字x,重新递归二元函数? (n,x)。

4.当最大值与最小值在500内,认为找到拐点

在这里我们用这个方法来检查系统的响应时间是否小与3秒,从而找出并发测试的系统拐点。我们取初始的m为1000,n为5000,即? (1000, 5000)

1240

认为拐点值为4969,与第一次方法获得的值4950应该比较接近。在第一种方法中我们测试了18步,而采用这种方法仅仅用了8步。

我们在用这种方法来试一下通过“通过的事务数”小与95%来寻找系统性能拐点的方法进行,我们仍旧取初始的m为1000,n为5000,即? (1000, 5000)。

1240

这里得到的拐点值为7148, 同样与上一个方法得到的7150也是比较接近的,但是上一次一共测试了28次,而这次测试了9次就找到拐点的。

另外对于容量测试寻找拐点也可以使用如下方法,只是容量测试的间距注意取得大一些。最后还要有一处注意的,对于并发测试,拐点是不太明晰的,所以第一次找到拐点的时候最好做二到三次的确认,而容量测试的拐点是非常明确地,在拐点上下的性能有明显的区别。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31407649/viewspace-2638511/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31407649/viewspace-2638511/

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LoadRunner是一款常用的性能测试工具,其中负载测试是其最为重要的功能之一。以下是使用LoadRunner进行负载测试的一般步骤: 1. 准备测试环境和测试数据:确定要测试的应用程序或系统和测试场景,并准备相应的测试数据。 2. 创建虚拟用户脚本:使用LoadRunner的虚拟用户生成器(Virtual User Generator,简称VUGen)创建一个或多个虚拟用户脚本,模拟真实用户对应用程序或系统的访问行为。在脚本中,可以设置用户行为、用户数量、请求类型、请求频率等。 3. 配置场景和负载模型:使用LoadRunner的场景配置器(Scenario Configuration)配置测试场景和负载模型,包括虚拟用户数量、虚拟用户运行时间、请求类型、请求比例、网络带宽等。 4. 运行测试:在LoadRunner的控制台(Controller)中启动测试,控制虚拟用户的并发数量、执行时间和负载强度等,观察系统在不同负载下的性能表现,并记录测试结果。 5. 分析测试结果:使用LoadRunner的分析器(Analysis)对测试结果进行分析和评估,包括响应时间、吞吐量、错误率、负载均衡度等指标的统计和图表展示。 6. 优化应用程序或系统:根据测试结果和分析结果,对应用程序或系统进行优化和改进,以提高其性能和稳定性。 需要注意的是,在使用LoadRunner进行负载测试时,需要充分了解测试对象的架构、技术特点和性能指标,同时合理设置测试场景和负载模型,以确保测试结果的准确性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值