1 概述
1.1. 性能测试目标
性能测试:测试软件在系统中的运行性能, 评估是否满足性能需求; 性能分析:对性能测试数据进行分析,定位性能问题; 性能调优:对性能问题进行调优。
1.2. 性能测试类型
性能测试包括负载测试、压力测试和容量测试三种测试类型及其它测试类型。 负载测试
检验系统在给定负载下的性能表现,资源利用情况,是否能达到预期性能指标等,通常并不强调系统的瓶颈和失败点;
在项目中,通常是测试现有负载和预期负载的负载压力测试,进行对比分析。 压力测试
对特定的软硬件环境不断施加“压力”,测试系统在压力情况下的性能表现,通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
容量测试
针对数据库而言,是在数据库中有较大数量的数据记录情况下对系统进行的测试。
1.3. 性能测试阶段
可以发生在各个测试阶段中,即使是在单元层,一个单独模块的性能也可以使用白盒测试来进行评估;
通常,只有当整个系统的所有成分都集成到一起之后,才能检查一个系统的真正性能。
1.4. 性能测试过程
应用系统的性能测试通常有如下过程:
软件性能测试与调优指南 Page 5 of 36
1) 分析性能需求:了解系统性能需求,建立性能测试数据模型,分析性能需求,确定合理性能目标;
2) 制定性能测试计划:规划性能测试所需的测试环境、测试程序,测试的人员组织,测试日程等;
3) 设计场景:设计性能测试的测试案例;
4) 根据场景编写程序、编写脚本、修改应用系统等;
5) 执行性能测试:建立测试环境、执行测试案例,记录测试时的系统的各个可能的参数; 6) 分析测试结果:根据应用系统表现和测试时的系统记录,分析发生的问题和测试结果; 7) 优化性能:提高系统的性能,使系统在测试时有更好的表现; 8) 性能回归测试:验证系统的优化以及对相关功能模块的影响;
9) 测试报告:对测试进行总结,记录已改进的问题及相关改进的修改,制定未解决问题的对策,提出系统运行、维护和改进建议。
2 分析性能需求
2.1. 了解系统性能需求
生产环境:服务器、机型、CPU、内存、存储、网络连接、操作系统、系统软件、应用系统。 用户分布:用户数、高峰期并发用户数。
应用请求分布:主要业务请求、平均日交易量、年交易量、峰值交易量。
下面是一个性能需求示例: 生产环境: 表一:生产环境 服务器 数据库 服务器 应用 服务器 机型 IBM RS6000 650 IBM RS6000 630 2 1 8 2 16G SAN 1000M 4G SAN 1000M AIX 数量 CPU 内存 存储 网络 连接 操作 系统 系统 软件 Oracle 9.2 数据库 双机 冷备 应用 系统 备注 WebLogic 应用 AIX 8.1 系统 用户分布: 有6个公司机构,平均每个公司有用户80个,共有480个用户,高峰并发用户数约480x30%≈150人。
应用请求分布: 表二:应用请求分布
软件性能测试与调优指南 Page 6 of 36
主要 每单位日平均业务请求 交易量 A业务 B业务 …… 165 120 单位数 6 6 平均日 交易量 990 720 日峰值 交易量 1287 936 年交易量 (250工作日) 247500 180000 备注 2.2. 建立数据模型
根据系统运行的分析和性能需求,建立性能测试所需的数据模型并依次产生相应测试数据。 负载测试:用户数、业务数据; 压力测试:用户数、业务数据;
下面是一个建立数据模型的示例: 负载测试
建立6个公司单位,每个公司有80个用户,业务数据是:A业务数据、B业务数据、…… 压力测试
建立12个公司单位,每个公司有160个用户,业务数据是:A业务数据、B业务数据、……
2.3. 分析性能需求、确定合理性能目标:
普通数据库容量负载时,在不同的用户数时的并发业务响应时间、随机业务响应时间; 大数据库容量负载时,在不同的用户数时的并发业务响应时间、随机业务响应时间;
未来若干年数据库容量负载时,在不同的用户数时的并发业务响应时间、随机业务响应时间; 提示:确定清晰明确的性能目标是非常关键的
下面是一个分析性能需求、确定合理性能目标的示例: 并发业务响应时间
(N个用户在登录系统做业务前,设置集合点,待并发用户到齐后,同时做预定的业务)
并发用户数 10 200 10 300 10 300 业务 A业务 A业务 A业务 A业务 A业务 A业务 响应时间 <2秒 <5秒 <2秒 <5秒 <2秒 <5秒 表三:并发业务响应时间 单位数 人数 6 12 24 480 1920 4800 软件性能测试与调优指南 Page 7 of 36
600 A业务 <8秒 注释:A业务数据容量是20万条记录
随机业务响应时间
(N人随机登录系统,部分用户随机做A业务,部分用户随机做B业务、C业务) 表四:随机业务响应时间
单位数 6 12 24
人数 480 1920 4800 随机用户数 业务 100 200 300 400 500 500 800 1200 A业务 B业务 A业务 B业务 C业务 A业务 B业务 C业务 <5秒 <8秒 响应时间 <3秒 <5秒 峰值 响应时间 <5秒 <8秒 注释:A业务数据容量是20万条记录、B、C业务数据容量均为10条记录。 3 制定性能测试计划
规划性能测试所需的测试环境、测试软件,测试的人员组织,测试日程等;
3.1. 测试环境
测试环境示例:
表五:测试环境 服务器 数据库 服务器 应用 服务器
软件性能测试与调优指南 Page 8 of 36
机型 IBM RS6000 650 IBM RS6000 630 1 2 4G SAN 1000M AIX 2 8 16G SAN 1000M AIX 数量 CPU 内存 存储 网络 连接 操作 系统 系统 软件 Oracle 9.2 8.1 数据库 系统 应用 系统 备注 WebLogic 应用