基于数理统计分析的服务器端持续性能压力测试方案

作者:石俊娟

摘要:

压力性能测试是软件测试当中非常重要的一部分,也是比较复杂,耗时的一个测试类型。如何提高测试效率,减少人工出错的可能性是本文想要解决的问题。该解决方案利用了数理统计的方法,巧妙的解决了性能测试数据分析的问题,并且提供了一套完整的持续集成方案。

 

性能测试是服务器端应用软件质量的重要指标。

在我们的项目中,经常需要做性能压力测试以收集性能数据,判断服务器端应用的性能是否维持原有的标准。我们会对应用施以不同的压力,收集不同压力下的各项性能指标,如response time, CPU, memory等数据。测试结束后,我们要把这些数据跟我们的基线进行比较,来得到性能是否有变化的结论。



性能压力测试通常都需要持续一定的时间,另外由于测试数据的波动性,通常要做好几轮的测试。测试结束后,人工的比较数据不仅耗费时间,也容易出错。所以经常一次lnp testing做下来都要至少半天时间。如果发现了问题,还需要troubleshooting,修改了之后继续进行多轮的测试。所以整个周期是比较长的。

在软件迭代如此快速的今天,我们通过把功能测试自动化,已经做到了持续性的测试,可以快速反馈软件的功能问题。那我们是否可以通过自动化整个lnp testing的流程,提高效率,减少人工的差错呢?也就是说,是否能够实现持续性的性能压力测试,尽快反馈软件的性能问题呢?

要实现持续性能压力测试,需要满足三个目标:1)自动获取最新的代码构建,部署应用,并进行压测。2)自动获取压测期间的各项性能数据。3把收集到的测试数据与性能基线自动地进行比较分析,得出性能是否有变化的结论。

基本的构想是通过Jenkins来构建,部署,触发测试。把测试结果发到一个中央的service,把结果保存到数据库。然后再自动进行数据的比较,再把最后的比较结果通过email发送给用户。

因为数据的波动性,我们没有办法通过绝对值的不同或者某种比例来判断性能的异常,因为这样无法适应不同应用,不同压力下的数据情况。所以我们要找到一种更加科学的方法来进行数据的比较。这里我们就可以利用数据分析,来找到合适的数据模型,然后用数理统计的方法来进行比较。

下面介绍以下具体的实现方式:

1)自动获取最新的代码构建,部署应用,并进行压测。

为了实现自动获取和构建,使用Jenkins

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值