性能测试基础

一、几个概念

性能测试

通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。

负载测试(Load Test) --测试方法/技术
模拟系统正常负载(系统能承受的最大负载量的期望值,即预计系统最大应该支持多大用户的并发量)压力场景,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来考察不同负载下系统的性能指标(响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等),以检验系统的行为和特性,发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。
负载测试更多地体现了一种方法或一种技术。负载测试不关注稳定性(长时间运行),只得到不同负载下相关性能指标即可。

压力测试/强度测试(press testing)--测试软硬件瓶颈
通过不断增加负载(大数据量、大量并发用户等),使应用系统在高强度负载情况下运行,直至系统崩溃,观察系统在峰值(拐点)情况下的表现,从而有效地发现系统瓶颈(cpu/内存/代码功能隐患)、系统容错力和可恢复力。

稳定性测试(endurance testing)--测试系统稳定性
在选定的压力值下,长时间(如:7*24h)持续运行,考察各项性能指标变化情况,进而确定系统在一定压力下是否运行稳定。

容量测试(volume testing)--测试系统容量
通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还可确定测试对象在给定时间内能够持续处理的最大负载或工作量。
容量测试根据系统运行情况可分为 安全容量测试和极限容量测试

  • 安全容量测试:硬件运行正常时的负载量/工作量(如:cpu 80% 内存80%)
  • 极限容量测试:系统压垮时的系统负载量/工作量

并发用户

  • 狭义并发用户,所有的用户在同一时间点做同一件事或操作,这种操作一般指做同一类型的业务。
  • 广义并发用户,同一时间(1s/1min)对系统发出了请求/操作(不区分类型)的用户。(单位时间确定为1s计算已经很精确)

吞吐量/吞吐率/QPS/TPS

  • 吞吐量:在一次性能测试过程中网络上传输的数据量的总和
  • 吞吐率:单位时间内网络上传输的数据量,也可以指单位时间内服务器成功处理客户请求数量
  • QPS(Queries Per Second):每秒钟服务器成功处理的请求数量。并发用户越多,qps越高。--不带有业务逻辑
  • TPS(TransactionsPerSecon):每秒钟系统能够成功处理事务或交易(如:下单全流程)的数量,它是衡量系统处理能力的重要指标。--带有业务逻辑

响应时间
从用户提交操作到应用系统把本次操作的结果以用户识别的方式展示出来的时间,其中包括呈现时间、数据传输时间和系统处理时间,一般性能测试主要测试系统处理时间

  • 呈现时间:浏览器对接收到数据的一个处理展示过程的时间
  • 数据传输时间:C-S/B-S之间传输数据的时间
  • 系统处理时间:系统得到请求后会对请求进行处理并将结果返回的时间

 二、性能测试流程

  1. 明确性能需求
  2. 了解系统架构
  3. 分析测试点
  4. 选择测试工具
  5. 制定测试计划
  6. 搭建测试环境(可以选择在生产环境直接压)
  7. 脚本编写
  8. 测试执行
  9. 性能调优
  10. 输出测试报告

三、影响系统性能的主要因素

  • 硬件:CPU、内存、硬盘、网卡以及其他网络设备
  • 操作系统
  • 网络
  • 中间件(也叫应用服务器,如Jboss、websphere、weblogic等)
  • 数据服务器
  • 客户端
  • 编程语言、程序实现方式、算法

四、性能问题解决方法

服务器调优、扩容(增加服务器)等

posted @ 2019-06-26 10:15  言笑.晏晏  阅读(237)  评论(0编辑  收藏  举报