性能测试

一、编写目的和适用对象 * 目的:为性能测试项目技术质量评价提供依据,规范技术测试结果评价,统一性能测试技术测试质量度量。

二、系统性能指标

  1. 交易响应时间 (RT - Response Time)

    • 定义:用户从客户端发起请求到接收到服务器返回响应所耗费的时间。通常指平均响应时间。
    • 参考标准
      • 互联网企业:< 500ms (例如淘宝业务 ~10ms)
      • 金融企业:< 1s (复杂业务 < 3s)
      • 保险企业:< 3s
      • 制造业:< 5s
      • 批量交易:大数据量下,2小时内完成压测。
  2. 系统处理能力

    • 定义:系统每秒钟能够处理的交易数量。
    • 简称与度量
      • HPS (Hits Per Second):每秒点击次数。
      • TPS (Transaction per Second):系统每秒处理交易数(常用)。
      • QPS (Query per Second):系统每秒处理查询次数。
      • (通常 TPS 衡量业务流程,QPS 衡量接口查询)
    • 标准 (TPS):越大越好。
      • 金融:1000 ~ 50000 TPS
      • 保险:100 ~ 100000 TPS
      • 制造:10 ~ 5000 TPS
      • 互联网电商:10000 ~ 1000000 TPS
      • 互联网中型网站:1000 ~ 50000 TPS
      • 互联网小型网站:500 ~ 10000 TPS
  3. 并发用户 (VU - Virtual User)

    • 定义:同一时刻登录系统并进行业务操作的用户数量。
    • 注意:对于短连接系统,吞吐量模式 (RPS模式) 更适合。性能测试目标通常是测出系统处理能力容量,而非特定并发用户数。
  4. 错误率 (FR - Failure Ratio)

    • 定义:(失败交易数 / 交易总数) × 100%。稳定性好的系统,错误率应主要由超时引起。
    • 标准:一般不超出 0.6% (成功率不低于 99.4%)。

三、资源指标

  1. CPU

    • 定义:中央处理器使用情况。CPU Load 指系统平均负载(队列长度)。
    • 标准
      • CPU 使用率 < 75%
      • CPU sys% < 30%
      • CPU wait% < 5%
      • CPU Load < CPU 核数
  2. Memory (内存)

    • 定义:计算机内存使用情况。
    • 标准:主要看 SWAP 交换空间利用率,应 < 70%。内存利用率100%不一定代表瓶颈(因缓存)。
  3. 磁盘吞吐量 (Disk Throughput)

    • 定义:单位时间内通过磁盘的数据量。
    • 标准:磁盘繁忙率 < 70%。
  4. 网络吞吐量 (Network Throughput)

    • 定义:单位时间内通过网络的数据量。
    • 标准:不超过设备或链路最大传输能力的 70%。
  5. 内核参数 (示例,具体参数众多)

    • 目的:确保不超过操作系统设置的参数限制值。
    • 常见二级指标示例
      • Maxuprc: 每个用户最大进程数
      • Max_thread_proc: 每进程最大线程数
      • maxfiles_lim: 每进程最大文件描述符数
      • shmmax: System V共享内存段最大大小
    • (详细列表见原文表格)

四、中间件指标 (如Tomcat, Weblogic)

  1. GC (垃圾回收)
    • GC频率、Full GC频率、Full GC平均/最大时长、堆使用率。
  2. ThreadPool (线程池)
    • Active Thread Count (活动线程数)、Pending User Request (排队用户请求数)。
  3. JDBC
    • JDBC Active Connection (活动连接数)。
  4. 标准
    • 运行线程数/JDBC连接数不超过最大值(建议最小50,最大200)。
    • GC 不频繁,特别是 Full GC。JVM 堆大小建议最小/最大均为1024M。

五、数据库指标 (如MySQL)

  1. SQL:耗时 (微秒级越小越好)。
  2. 吞吐量:QPS (每秒查询数)、TPS (每秒事务数)。
  3. 命中率 (越高越好,一般 > 95%):
    • Key Buffer命中率、InnoDB Buffer命中率、Query Cache命中率、Table Cache命中率、Thread Cache命中率。
  4. :等待次数 (越低越好)、等待时间 (越短越好)。

六、前端指标

  1. 页面展示
    • 首次显示时间、OnLoad事件时间、完全载入时间 (越短越好)。
  2. 页面数量
    • 页面大小 (KB,越小越好)、请求数量 (次,越少越好)。
  3. 网络
    • DNS时间、连接时间、服务器时间、传输时间、等待时间 (越短越好)。

七、稳定性指标

  • 定义:系统在最大容量80%或标准压力下,能够稳定运行的最短时间。
    • 8小时工作制系统:稳定运行 > 8小时。
    • 7×24运行系统:稳定运行 > 24小时。
  • 标准:TPS曲线稳定,无大幅波动;各项资源指标无泄露或异常。

八、批量处理指标

  • 定义:批量处理程序单位时间内处理的数据数量(通常 每秒处理数据量)。
  • 标准:大数据量下,批处理时间窗口越短越好;不能影响实时交易系统性能。

九、可扩展性指标

  • 定义:(增加性能/原始性能) / (增加资源/原始资源) × 100%。
  • 标准:理想为线性增长;至少在 70% 以上。

十、可靠性指标

  1. 双机热备
    • 节点切换成功与耗时、业务中断情况、节点回切成功与耗时、数据丢失量。
  2. 集群
    • 节点故障时业务中断情况、增/删节点是否需重启系统、故障节点恢复加入集群的影响、节点切换时间。
  3. 备份和恢复
    • 备份/恢复成功与耗时、是否自动化。

十一、指标体系的运用原则

  • 指标选择取决于测试目的和需求。
  • 特定系统可能需额外考察用户接入并发能力。
  • 批量处理主要考虑处理效率和时间窗口。
  • 若测试目标为性能容量,需明确指标需求。
  • 获取指标后,需说明前提条件(如业务量、资源情况)。