性能测试基础知识

性能:(时间,资源)系统处理用户请求的响应时间;系统运行过程中,系统资源的消耗情况。

性能测试:使用自动化工具,模拟不同场景,对软件各项性能指标进行测试和评估的过程。

目的:评估当前系统的能力;寻找性能瓶颈,优化性能;评估软件是否能满足未来的需要。

为什么进行性能测试?

  • 为了保障软件能够在期望的负载下运行良好,并且通过发现性能问题来消除应用程
    序的性能瓶颈。
  • 提供系统速度的度量;这些测试有助于对参数进行基准测试,如度量应用程序速度的响应时间,我们都知道,这对于应用程序的成功至关重要。
  • 有助于评估应用程序的可扩展性;性能测试有助于检查应用程序是否有能力扩充更多的用户量。
  • 有助于检查应用程序的健壮性;通过压力测试,我们可以检查应用程序在工作负载高于预期或高于应用程序阈值时的稳健性。
  • 有助于检查应用程序的可靠性;进行不同类型的性能测试是为了检查应用程序是否可靠,是否提供了正确的和一致的输出。性能测试,如负载测试和耐久测试,有助于评估系统在预期的工作负载下的正确性。

测试流程

测试需求分析——测试计划——测试用例设计——测试执行——性能分析和调优——测试报告

  • 需求分析:明确被测系统、明确测试内容、明确测试策略、明确测试指标
  • 测试计划:测什么(项目背景/测试目的/测试范围)、谁来测(进度与分工/交付清单)、怎么测(测试策略)
  • 测试执行:建立测试环境、编写测试脚本、执行测试脚本
  • 测试报告:测试工作的经过、缺陷分析和调优、风险评估、测试结果、测试工作总结与改进

性能测试分类

  • 负载测试:通过逐步增加系统负载,确定在满足系统的性能指标情况下(如响应时间、数据吞吐量、系统占用资源等),找出系统所能承受的最大负载量的测试

    • 通过负载测试,可以确定系统的最大负载量和极限负载量
    • 系统对外宣称的最大负载量
    • 负载测试的时间一般为1-2小时
    • 要在给定的测试环境下进行,通常要考虑被测试系统的业务压力量和典型场景、使测试结果具有业务上的意义
  • 稳定性测试:在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试(1天-1周),保证服务器能满足线上业务需求。

    • 关注点是“稳定”,不需要给系统太大的压力,只要系统能够长期处于一个稳定的状态。
      通常可以测试出系统是否有内存泄露的问题。
  • 压力测试:在强负载(大数据量、大量并发用户等)下的测试,例如cpu、内存在饱和使用情况下,看系统在峰值使用情况下是否稳定,看系统处理的会话能力以及哪里会出问题。从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力可恢复能力

  • 并发测试:模拟多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题。

  • 容量测试:通过测试预先分析出系统某项指标的极限值(如最大并发用户数、数据库记录数等)

    • 容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量

对比:

  • 负载测试:主要目的是测试高负载情况下,对系统资源的消耗,是否会耗尽的问题(双11活动)
  • 并发测试:主要目的是测试极短时间内,并发请求时,系统资源争抢的问题(抢红包、秒杀)
  • 容量测试:在坚持5分钟的情况下,他一次最多能扛多少斤。
  • 配置测试:通过对被测系统软硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则
    • 关注点是“微调”,通过对软硬件的不段调整,找出他们的最佳状态,使系统达到一个最强的状态。

你可能感兴趣的:(测试相关,功能测试)