性能测试类型

性能测试类型包括负载测试、压力测试、强度测试、容量测试、并发测试、稳定性测试(可靠性测试、疲劳强度测试)、配置测试、失败测试等

性能测试

  • 性能测试(Performance Testing):通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能的需要。
    • 说明:要事先了解被测试系统经典场景,并具有确定的性能目标。
    • 目的:是验证系统是否具有宣称具有的能力。是为获取或验证系统性能指标而进行测试。多数情况下,性能测试会在不同负载情况下进行。

负载测试

  • 负载测试(Load Testing): 模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。
    • 负载:模拟业务操作对服务器造成压力的过程,比如模拟100个用户进行发帖、登录、购票等操作。
    • 关注点:软件系统的性能极限,软件在一定时期内,最大支持多少并发用户数,软件请求出错率等
    • 负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。
    • 负载测试是一种测试方法,可以为性能测试、压力测试所采用。

压力测试

  • 压力测试/强度测试(Stress Testing):是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。
    • 关注点:饱和状态,让系统处在很大强度的压力之下,看硬件系统是否达到需求文档设计的性能目标,在一定时期内,系统的cpu利用率,内存使用率,磁盘I/O吞吐率,网络吞吐量等,是否稳定。
  • 压力测试分类
    • 高负载下的长时间(如24小时以上)的稳定性压力测试
    • 极限负载情况下导致系统崩溃的破坏性压力测试。

容量测试

  • 容量测试(Volume Testing):核实测试用户同时使用软件程序的最大数量,确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等。

并发测试

  • 并发测试:通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题。
    • 特点:主要目的是发现系统中可能隐藏的并发访问时的问题,如系统中的线程锁和资源争用方面的问题
    • 关注点:同时, 多个用户同时(并发)对一个模块或操作进行加压。
    • 集合点:方便并发使用的控制器。

稳定性测试/可靠性测试/疲劳强度测试

  • 稳定性测试/稳定性压力测试/可靠性测试/疲劳强度测试(Endurance Testing):在一定软硬件环境下,长时间运行一定负载,确定系统在满足性能指标的前提下是否运行稳定。
    • 特点:主要目的是验证是否支持长期稳定的运行;需要在压力下持续一段时间的运行,需要关注系统的运行状况。
    • 关注点:稳定,不需要给系统太大的压力,只要系统能够长期处于一个稳定的状态。

配置测试

  • 配置测试(Configuration Testing):核实在操作条件保持不变的情况下,通过对被测系统的软/硬件环境资源配置的调整,收集各种不同配置对系统的性能影响的程度,从而找到系统各项资源的最优分配原则。
    • 特点:主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行的调优操作;一般在对系统性能状况有初步了解后进行;一般用于性能调优的规划能力,为设备选择、设备配置提供参考。
    • 关注点:微调–最优分配,通过对软硬件的不断调整,找出这个最佳状态,使系统达到一个最强的状态。

失败测试

  • 对于有容灾备份和负载均衡的系统,通过此测试来验证如果系统发生故障,用户是否可以继续使用系统。

各种测试区别和关注点

  • 区别:负载测试 和 压力测试 都是在逐步加压
    • 负载测试:在正常的范围内测试,满足需求即可 -- 见好就收
    • 压力测试:在极限范围内测试,测到极限为止 -- 使劲折腾 图片.png