×××系统项目
性能测试报告
――――――――――――――――――――
XXX部
XXXXXXXX
XXXX有限公司
修订控制页
编号 |
文档版本 |
修订章节 |
修订原因 |
修订日期 |
修订人 |
审核人 |
1 |
1.0 |
全文 |
创建文档 |
2011-4-28 |
|
|
2 |
|
|
|
|
|
|
3 |
|
|
|
|
|
|
4 |
|
|
|
|
|
|
目 录
1.
本报告是针对XXX系统的功能完整性、高可靠性的集群、系统容量等多方面而进行的。其目的主要是验证系统架构设计决策的正确性,检验架构设计是否有能力承受高并发登录系统进行交易和大数据量的批量处理业务,根据用户提出的业务需求组织利用典型业务来验证XXX系统是否能够适应,发现现有系统中可能存在的性能方面问题,提出可行性建议,以尽可能降低后续工作风险,为系统的稳定运行提供保证。
主要测试目标如下:
1、获得XXX系统的性能表现,为系统上线提供依据。
2、考查XXX系统的并发性和效率情况,为代码优化提供指导。
3、获得系统性能较优的参数配置,为XXX系统调优提供依据。
4、获得XXX系统在不同负载下的主机资源消耗情况,为硬件配置提供依据。
2. 测试地点
××。
3. 测试环境
3.1. 服务器、客
本次测试的服务器环境为XXX系统的生产主机,客户环境为1台P4 1.6G的便携式笔记本。
本次测试使用的设备清单如下:
设备类型 |
设备型号 |
操作系统 |
数据库/软件 |
内存 |
CPU |
业务服务器 |
1*HP RX4640 |
HP UNIX 11 |
Oracle 9201 XXX系统 |
4G |
2*安腾1.1 |
客户端 |
1 * IBM R50e |
Win2000 |
IE6,LoadRunner 8 |
512M |
P4 |
网络 |
客户端通过百M局域网访问XXX系统。 |
3.2. 测试工具
测试项目 |
测试工具 |
监控器 |
性能测试工具 |
LoadRunner 8.0 |
Protocol: Web/HTML Monitors: System Resource |
测试工具特点介绍:LoadRunner是 用于预测系统行为和性能的压力测试工具。它通过模拟大量用户来对整个企业的基础设施进行测试,以发现问题。
LoadRunner 使用虚拟用户来最小化测试的硬件和人员需求。虚拟用户是一个代理,它模拟真实的用户来测试程序。通过使用虚拟用户生成器,用户可以生成虚拟用户。在生成虚拟用户后,用户可以定义压力场景了-这是业务操作和虚拟用户数量的结合。LoadRunner 采用了可视化控制器 – 一个交互的环境来组织、驱动和管理压力测试的场景。控制器通过驱动和同步真实应用和多个并发用户来执行测试。
4. 测试规模及限制
测试系统的数据规模如下所示:
序号 |
类型 |
数量 |
1. |
XX数 |
8 |
2. |
XX总数 |
1028256 |
3. |
XX数 |
2 |
4. |
XX数 |
4 |
5. |
XXX数 |
369316 |
6. |
XXXX流水 |
2297711 |
5. 测试过程说明
5.1. 测试模型
为了使性能测试尽量准确,必须要符合以下几点:
Ø 被测试的功能属于系统应用高峰状态的功能范围。
Ø 虚拟用户的在线或并发数量应模拟实际用户的在线或并发数量。
Ø 虚拟用户执行功能的方式应模拟实际用户执行功能的方式。
Ø 数据库的数据规模尽量等于上线时的数据规模。
根据上述条件,我们建立了合适的性能测试模型,包括期望响应时间、测试环境、测试场景、测试数据,使用不同类型的测试手段,同时使用监控手段,以期正确的检查系统的性能指标。
5.2. 测试案例
根据性能测试的选取原则,共选择了典型案例8个。
序号 |
案例名称 |
案例配比(%) |
脚本名称 |
1. |
登录 |
10% |
login |
2. |
XXX查询 |
20% |
XXX_query |
3. |
XXX查询 |
10% |
XXX_query |
4. |
XX信息查询 |
10% |
XXX_query |
5. |
XXX查询 |
10% |
XXX_query |
6. |
XXX查询 |
10% |
XXX_query |
7. |
XXX明细查询 |
20% |
XXX_query |
8. |
生成XXX |
10% |
XX_save2 |
5.3. 测试场景
为了使测试过程和测试结果能尽可能准确地反映出现实的生产系统场景,本次测试过程选取了具有代表性的8项业务操作,另外,根据初步分析,在每种并发用户数条件下,为各项业务操作分配了一定数量配比关系的虚拟用户,详见下表。
测试场景与虚拟并发用户分配表
序号 |
业务操作 |
用户数 |
||
50 |
100 |
|||
1. |
登录 |
5 |
10 |
|
2. |
XXX查询 |
10 |
20 |
|
3. |
XXX查询 |
5 |
10 |
|
4. |
XX信息查询 |
5 |
10 |
|
5. |
XXX查询 |
5 |
10 |
|
6. |
XXX查询 |
5 |
10 |
|
7. |
XXX明细查询 |
10 |
20 |
|
8. |
生成XXX |
5 |
10 |
|
合计 |
50 |
100 |
测试场景说明:
根据系统的规模,进行2次压力场景测试,分别是:
l 50虚拟用户场景
l 100虚拟用户场景
每次测试过程的场景如下:
l 加压方式:每1秒加载一个虚拟用户,以50用户压力测试为例,在50秒内加载完毕;
l 稳定运行时间:为了保证测试过程充分过程和数据准确,每次脚本运行的时间定为5分钟。
l 减压方式:同时卸载所有用户;
l 思考时间设置:按照录制时的思考时间重播。思考时间是客户等待的时间或者浏览网页时间,其间无鼠标和键盘操作。为了真实地反映实际情况,采用了实际的思考时间。
l 其他设置:完全模拟IE浏览器行为;模拟浏览器缓存;记录标准日志;网络带宽不限
6. 测试结果
6.1. 平均响应时间
平均响应时间
序号 |
业务操作 |
平均响应时间(秒) |
|||
50user |
100user |
||||
1. |
登录 |
2.610 |
2.922 |
||
2. |
XXX查询 |
1.005 |
1.411 |
||
3. |
XXX查询 |
0.768 |
0.981 |
||
4. |
XX信息查询 |
0.252 |
0.297 |
||
5. |
XXX查询 |
0.821 |
1.22 |
||
6. |
XXX查询 |
0.793 |
1.183 |
||
7. |
XXX明细查询 |
0.335 |
0.492 |
||
8. |
生成XXX |
4.920 |
9.150 |
50用户平均事务响应时间
100用户平均事务响应时间
6.2. 差错率统计
序号 |
业务操作 |
操作员数 |
通过交易数 |
失败交易数 |
差错率 |
1. |
登录 |
50 |
368 |
0 |
0% |
100 |
760 |
0 |
0% |
||
2. |
XXX查询 |
50 |
1970 |
0 |
0% |
100 |
3388 |
0 |
0% |
||
3. |
XXX查询 |
50 |
1016 |
0 |
0% |
100 |
1806 |
0 |
0% |
||
4. |
XXX明细查询 |
50 |
1918 |
0 |
0% |
100 |
2437 |
0 |
0% |
||
5. |
XXX查询 |
50 |
2024 |
0 |
0% |
100 |
2571 |
0 |
0% |
||
6. |
XX信息查询 |
50 |
5100 |
0 |
0% |
100 |
6343 |
0 |
0% |
||
7. |
XXX查询 |
50 |
2346 |
0 |
0% |
100 |
2618 |
0 |
0% |
||
8. |
生成XXX |
50 |
401 |
0 |
0% |
100 |
380 |
0 |
0% |
50用户事务摘要
100用户事务摘要
6.3. 主机系统资源消耗
负载(操作员数) |
业务服务器(CPU占用率%) |
50 |
59.12 |
100 |
78.73 |
7. 性能测试总结
本次并发性能测试,选取业务操作频率最高的8个测试案例:登录,查询XX,生成XX等。分别模拟了50人和100人并发操作业务节点。测试的性能参数包括:操作业务的平均响应时间、系统差错率、主机系统资源消耗等。
测试结果小结如下:
(1)操作业务的平均响应时间在可接受范围之内,100个并发用户登陆平均时间为2.922秒,生成XXX操作为9.150秒,其他业务操作均低于2秒。
(2)系统差错率在可接受范围之内,系统差错率全为0%。
(3)业务服务器总体性能比较稳定,系统资源消耗比较合理。在100个用户时,业务服务器中平均CPU占用率为78.73%。
8. 大数据量业务测试数据
8.1. 测试参数
设备类型 |
地点 |
设备型号 |
操作系统 |
数据库/软件 |
内存 |
CPU |
业务服务器 |
机房 |
1*HP RX4640 |
HP UNIX 11 |
Oracle 9201 XXX系统 |
4G |
2*安腾1.1 |
客户端 |
会议室 |
1 * IBM R50e |
WinXP |
|
1G |
P4 |
网络 |
客户端通过百M局域网访问XXX系统。 |
8.2. 测试结果
测试数据:
XX数:8个
XXX总数:102万人
XX数:2个
XX数:4个
测试结果:
序号 |
业务操作 |
数据量 |
相应时间 |
产生数据量 |
1. |
XXXX导入 |
1万 |
XX秒 |
XX万 |
2. |
XXXX导入 |
2万 |
XX秒 |
XX万 |
3. |
XX账单导入 |
1万 |
XX秒 |
XX万 |
4. |
XX账单导入 |
2万 |
XX秒 |
XX万 |
5. |
XXX生成 |
7万 |
XX秒 |
XX万 |
6. |
XXX生成 |
10万 |
XX秒 |
XX万 |
7. |
XXX生成 |
16万 |
XX秒 |
XX万 |
8. |
XXX保存 |
7万 |
XX秒 |
XX |
9. |
XXX保存 |
10万 |
XX秒 |
XX |
10. |
XXX保存 |
16万 |
XX秒 |
XX |
11. |
XXX入账 |
7万 |
XX秒 |
XX万 |