Skip to content

性能方案需包含:被测系统分析、性能测试指标、测试环境、数据准备、风险点、压测工具选型、指标监控、设计场景(包含:基准测试、并发测试、疲劳测试)

1.被测系统分析

描述被测系统架构以及它的业务模块

架构如下:

XXX系统是由平台开发的一款电商应用软件,后台应用了Oracle 11g数据库。
该系统主要围绕用户注册、登录、商品加购、支付等核心业务流程展开,涵盖了用户管理、商品信息管理、订单处理、支付管理等多个功能模块。
在实际业务场景中,系统需要支持多用户同时操作,处理大量的用户注册、登录请求,以及频繁的商品加购和支付操作。同时,系统还需具备强大的数据处理能力,以应对日常的订单生成、库存更新、交易记录等大数据量操作,并能生成日报、周报、年报等统计报表,为运营决策提供数据支持。
在本次测试中,我们将针对这些业务场景中的多用户操作、大数据量查询和统计功能,进行预期性能、用户并发、大数据量、疲劳强度和负载等方面的性能测试。通过模拟真实业务场景,检查并评估系统在不同用户连接情况下的吞吐能力和响应能力,以及在预计的数据容量中系统能够容忍的最大用户数,从而全面评估系统对负载的承受能力。

业务模块如下:

业务步骤
用户注册1. 进入注册页,填手机号、邮箱等信息。
2. 完成验证,提交注册。
用户登录1. 进入登录页,输账号密码或选第三方登录。
2. 点击登录,完成验证进入应用。
用户加购1. 浏览商品,进详情页选规格。
2. 点击加购,可继续添加其他商品。
用户支付1. 购物车选商品,去结算确认信息。
2. 选支付方式,提交订单完成支付。

2.性能测试指标

参考 性能测试指标

3.风险点

主要描述性能压测过程中可能遇到的问题,用户加购下单场景中,需考虑以下风险:

  1. 短信模块是外接第三方模块,考虑费用以及网络层面因素,这里需要做代码桩,确保短信不受限制发送。
  2. 支付模块是核心模块,若需要评估性能,需要mock一些服务以及测试数据来验证并且需要隔离生产环境。
  3. 进行疲劳验证时需要考虑jvm这些指标如何监控,如何告警便于快速发现问题。

4.测试环境

环境说明
压力机4台,4c8G配置200G盘,千兆带宽,windows10/安装Jmeter
被测系统4台, 8c16G配置500G机械硬盘,万兆带宽,分布式部署服务
数据库1台,Oracle 11g RAC
中间件1台,zookeeper

5.数据准备

  • 通过系统自带的Excel导入工具构造数据,如有问题,考虑通过API工具(如Postman、JMeter)或编程语言(Java、Python)模拟HTTP请求构造数据。
  • 确保数据构造的完整性和准确性,避免脏数据。

6.性能测试工具选型

参考 性能测试工具

7.指标监控

参考 性能测试指标 的 《Linux服务器性能指标》章节

8.设计场景

8.1 基准测试

基准测试时验证压力恒定情况下及系统未调优情况下,系统最初的表现。

目的:

  1. 验证系统初始性能表现。
  2. 后续持续增加压力看系统是否能阶梯式增长TPS.

8.2 并发测试

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

目的:

  1. 主要目的是发现系统中可能隐藏的并发访问时的问题。
  2. 主要关注系统可能存在的并发问题,例如系统中的内存泄漏、线程锁和资源争用方面的问题。
  3. 可以在开发的各个阶段使用需要相关的测试工具的配合和支持。

8.3 疲劳测试

即压力测试,测试系统在一定饱和状态下,例如cpu、内存在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误。

目的:

  1. 主要目的是检查系统处于压力性能下时,应用的表现。
  2. 一般通过模拟负载等方法,使得系统的资源使用达到较高的水平。
  3. 一般用于测试系统的稳定性。