性能测试之稳定性测试

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

  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. 从图表中可以看出:

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

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

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

总结

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

原文地址:https://www.cnblogs.com/klb561/p/10344403.html

时间: 2024-10-06 00:53:23

性能测试之稳定性测试的相关文章

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

最近两天在系统的复习性能测试方面的知识,结合之前的性能测试经验有了一些总结,希望写出来与大家分享,希望多提宝贵意见,共同进步~ 概念 首先来说说性能测试:性能是软件的一种非功能特性,他关注的不是软件是否完成了特定的功能,而是软件在完成特定功能是展示出来的及时性.及时性从不同的视角代表不同的指标: 用户:响应时间 系统管理员:资源利用率,可扩展性,系统稳定性,系统容量 开发人员:系统架构,数据库设计,设计和代码实现 可见,系统稳定性对系统管理员的意义重大,稳定性的好坏也可以直接影响到最终用户所关心

DBCP,C3P0,Tomcat_JDBC 性能及稳定性测试

1.测试环境: 硬件环境: 数据库服务器:2U*8核 8G内存 测试服务器:   2U*8核 6G内存 软件环境: jdk: 1.6.29 mysql: 5.0.77 mysql_driver: mysql-connector-java-5.0.8-bin.jar DBCP: commons-dbcp-1.4.jar 下载地址: http://commons.apache.org/dbcp/ commons-pool-1.5.6.jar 下载地址: http://commons.apache.o

【测试123】性能测试之压力测试

https://sq.163yun.com/blog/article/196036888966840320 线上问题:由于上游某系统数据分布突变,引起下游本系统的一个特定时间性能指标未达线. 性能需求: 1.  调整数据分布,重新测量系统在新的压力场景下的吞吐量和关键性能指标,及此特定时间 2.  需要提高系统的处理能力,使得此时间性能达标,并且对其他性能指标无大幅度影响 一.性能测试数据准备 1. 铺底数据准备 铺底数据有目的: 铺底数据的首要目的是让性能测试环境与线上保持一致,或者说接近线上

性能测试之LoardRunner 测试场景监控关注的几点

1.系统业务处理能力,即通常我们在进行性能测试的时候,在特定的硬件和软件环境下考察的业务处理能力,即“事物”,需要关注当前.平时.峰值以及长远未来业务发展情况,考虑不同业务的处理数量,从而设定相应的业务处理性能指标.系统业务处理能力性能指标包括:TPS(Transaction per Second每秒事物数).HPS(Hits Per Second每秒点击数).Throughput(吞吐量)等 2.系统资源使用情况,即服务器(应用服务器.数据库服务器).CPU利用率.内存使用情况.磁盘I/O情况

性能测试之线上引流测试--让性能测试更真实更丰富

为什么要做引流测试 目前为止大部分的测试是在测试环境下,通过模拟用户的行为来对系统进行验证,包括功能以及性能.在这个过程中,你可能会遇到以下问题: 用户访问行为比较复杂,模拟很难和用户行为一致,模拟不够真实; 线下模拟场景有限,会出现业务覆盖不全的情况.引流测试就是为了解决以上问题,通过把线上的真实流量复制到线下环境,解决测试环境模拟不够真实,或覆盖不够全面的问题. 引流的做法 目前不少公司对引流测试进行了实践,主要有以下4种引流方式: 以上几种办法各有利弊,有的是需要自己开发相应的工具来支持.

图解测试之稳定性-如何开始稳定性测试

本文链接:https://blog.csdn.net/sogouauto/article/details/48296827一.测试流程 我的观点 稳定性测试需要规范细致的流程,上图对流程作了总结,本文将首先分析如何进行前两项工作:需求分析和测试计划,其他项敬请期待本系列文章~ 二.需求分析 我的观点 在进行软件测试前,我们需要进行测试需求分析:通过测试需求分析,我们可以全面了解软件测试最终可达到的效果及可能遇到的问题等,提前预防风险的发生. 三.测试计划 ————————————————版权声明

【原创】性能测试之——网络环境分析

性能测试之——网络环境分析 首先,我们需要了解宽带上网时的网络带宽环境概念: 这里指的是带宽网速的单位计算方式方法及关系. 在计算机网络.IDC机房中,其宽带速率的单位用bps(或b/s)表示:换算关系为:1Byte=8bit 1B=8b             ---------- 1B/s=8b/s(或1Bps=8bps) 1KB=1024B     ---------- 1KB/s=1024B/s 1MB=1024KB  ---------- 1MB/s=1024KB/s 在实际上网应用中

【原创】性能测试之——性能测试需求分析

性能测试之——性能测试需求分析 这里以一个电商购物(B2C)网站为例: 客户的购物网站性能测试(业务)需求: 从12月下旬至农历年底(来年2月初)(<=50天)网站预计营业额(400万),这里营业额可以理解为网站完成购买订单总金额: 访问订单转化率:10%,这里理解为百分之多少的访问量会转化为实际的网站订单: 每日访问时间:24小时×80%,这里理解为正常用户会在早6点至凌晨0点之前进行电子购物,下午18点下班至晚上22点为购物高峰期: 每个订单平均选购商品数:3件左右共计300元左右的金额,这

[Android Pro] Android应用性能测试之CPU和内存占用(转载)

首先稍做分析一下测试环境:我们知道CPU和内存占用是一个实时变化的状态,而市面上还没有具体的哪款android应用能做到实时监控CPU和内存占用并使用log日志保存.考虑到android的底层框架是基于Linux的平台,所有我们可以通过Linux的资源监控命令来实现对android平台的资源实时监控. 要做到上边的测试环境的实现,需要具备以下几点: 1.被测试的手机具备root权限:因为涉及到底层的linux命令,需要读取或执行相应的文件.至于如何root你的手机,不同型号的手机root的方法不