性能测试之稳定性测试(可靠性测试)

最近两天在系统的复习性能测试方面的知识,结合以前的性能测试经验有了一些总结,但愿写出来与你们分享,但愿多提宝贵意见,共同进步~数据库

概念

首先来讲说性能测试:性能是软件的一种非功能特性,他关注的不是软件是否完成了特定的功能,而是软件在完成特定功能是展现出来的及时性。及时性从不一样的视角表明不一样的指标:架构

  1. 用户:响应时间
  2. 系统管理员:资源利用率,可扩展性,系统稳定性,系统容量
  3. 开发人员:系统架构,数据库设计,设计和代码实现

可见,系统稳定性对系统管理员的意义重大,稳定性的好坏也能够直接影响到最终用户所关心的“响应时间”,因此说稳定性测试时性能测试中很是重要的一环。数据库设计

稳定性测试(亦可称可靠性测试)经过给系统加载必定的业务压力,让系统持续运行一段时间(通常为7x24小时),检测系统是否可以稳定运行。性能

 

如何实施

  • 识别并确认软件主要业务(是否须要稳定性测试)
    • 将稳定性测试的重心放在软件最有Value的地方,好比说一个抢票系统,它最有value的地方是当有必定数量的用户同时进行买票操做是系统的相应时间,资源利用率等是否可以正常且稳定,而不是用户如何添加新的联系人,修改我的信息等
  • 罗列主要用户场景及相应负载量
    • 用户场景能够根据软件主要业务进行设定
    • 对主要场景负载量须要有一个清晰的定义(或者经过负载测试验证了用户场景的负载量,这将做为一个标准的负载在稳定性测试中使用)
  • 制定稳定性指标模型(Modeling)
    • 根据用户场景建模,建立合适合理的稳定性指标模型(以后会有一个例子)
  • 测试环境准备(对软硬件环境的配置:配置的来源能够是客户环境模拟、需求文档规定的配置或者配置测试得出的最佳配置)
  • 识别稳定性的主要性能指标(KPI)
    • 用来描述稳定性测试关注的系统指标,好比响应时间、CPU、内存使用率等等,须要根据具体业务进行定义  
  • 测试的执行和数据收集
  • 按照相应稳定性指标模型(Modeling)分析测试结果
    • 将测试结果应用在稳定性测试模型中,观察是否知足稳定性要求
  • 持续改进(若有必要)

稳定性指标模型(例子)

下面咱们拿一个BI(商业智能)的例子来进行咱们的稳定性测试建模
  1. 软件主要业务:从大量元数据中提取(ETL)客户关心的数据并最终生成报表(本文以微软平台BI为例:SSIS,SSAS,SSRS)
  2. 用户场景:利用SSIS 包进行ETL操做将元数据计算转化后导入到数据立方体(Cube)中。
  3. 典型负载:每小时3000个用户,100000条数据,执行7x24小时
  4. 测试环境:需求文档中规定的配置
  5. 主要性能指标:
    1. ETL时间:9分钟,差异:1分钟,方差:<0.1
    2. 系统相关:CPU,Memory,Private Mbytes/sec等
  6. 稳定性指标模型:
    1. 计算公式

  

2. 稳定性模型测试

 

3. 从图表中能够看出:spa

    • ETL上限为12分钟(即若是超过12分钟就证实有瓶颈,须要调查)
    • ETL平均值为9分钟
    • 控制线的上下方分别为Avg加减3倍的方差
    • 实际使用时间围绕平均值上下分布(标准为同一贯不能出现连续7个点:如连续7个实际检测值都在平均值的上方,这时就须要进行调查)

      4. 系统方面的指标也能够按照这个方法去分析。(固然,对系统资源占用要求不高的系统能够直接经过占用曲线来分析稳定性)设计

7. 执行测试获取结果,套用指标模型进行分析blog

总结

总的来讲,稳定性测试是用来验证产品在必定的负载下是否可以长时间的稳定运行,其主要目的是验证能力,并在能力的验证过程当中找到系统不稳定的因素并进行分析解决。内存

相关文章
相关标签/搜索