1、xxxxxxxxxx性能测试报告2018 年 11 月 12 日第 0 页 共 21 页目 录1 前言 11 第一章 XXXXXXXX 核心业务系统性能测试概述 11.1 被测系统定义 .11.1.1 功能简介 11.1.2 性能测试指标 21.2 系统结构及流程 .21.2.1 系统总体结构 21.2.2 功能模块描述 31.2.3 业务流程 41.2.4 系统的关键点描述(KP) .51.3 性能测试环境 .51.3.1 硬件及网络环境 51.3.2 系统装配描述 61.3.3 系统启动和管理 62 第二章 性能测试 62.1 压力测试 .62.1.1 压力测试概述 72.1.2 测试目的
2、 72.1.3 测试方法及测试用例 72.1.4 测试指标及期望 92.1.5 测试数据准备 102.1.6 运行状况记录 113 第三章 测试计划及方案 .112.2 测试步骤 .122.2.1 被测系统调研 122.2.2 测试环境的部署 132.2.3 脚本的录制和调试 132.2.4 准备测试场景 142.2.5 准备测试数据 142.2.6 执行性能测试 142.2.7 生成测试报告 152.3 测试时间进度及人员安排 .152.3.1 人员安排 153 第四章 测试报告 16第 1 页 共 21 页1 前言目前,XXXX 的 XXXXXXXX 核心业务系统(以下简称新业务系统)已先
3、后在XXXX、成功上线,从而公司的 XXXX 信息管理逐步走上了集中管控的道路。后续,xxx 等 34 家分公司的 XXXX 信息也将分布进入业务系统,从而将会势必出现新业务系统中信息大量增长的态势。随着新业务系统在生产状态下日趋稳定、成熟,系统的性能问题也逐步成为了我们关注的焦点:XXXX 大数据量的“冲击” ,在 XXXX 信息进入时,系统能稳定在什么样的性能水平,面临公司业务冲刺时,系统能否经受住“考验” ,这些问题需要通过一个完整的性能测试来给出答案。本性能测试规划书即是基于上述考虑,参考科学的性能测试方法而撰写的,用以指导即将进行的 XXXXXXXX 核心业务系统的性能测试。1 第一
4、章 xxxx 系统性能测试概述1.1 被测系统定义xxxx 业务系统作为本次测试的被测系统(注:以下所有针对被测系统地描述均为针对 XXXXXXXX 核心业务系统进行的) ,该业务系统的主要功能包括:xxxxx在本次测试中,将针对上述的功能进行压力测试,检查并评估在模拟环境中,系统对负载的承受能力,在不同的用户连接情况下,系统地吞吐能力和响应能力,以及在预计的数据容量中,系统能够容忍的最大用户数,1.1.1 功能简介xxxxxx主要功能如下: xxx xxxxx第 2 页 共 21 页1.1.2 性能测试指标本次测试是针对 XXXXXXXX 核心业务系统的性能特征和系统的性能调优而进行的,主要
5、需要获得如下的测试指标。1、系统的响应能力:即在各种负载压力情况下,系统的响应时间,也就是从客户端交易发起,到服务器端交易应答返回所需要的时间,包括网络传输时间和服务器处理时间。2、应用系统的吞吐率:即应用系统在单位时间内完成的交易量,也就是在单位时间内,应用系统针对不同的负载压力,所能完成的交易数量。3、应用系统的负载能力:即系统所能容忍的最大用户数量,也就是在正常的响应时间中,系统能够支持的最多的客户端的数量。1.2 系统结构及流程xxxx 业务系统在实际生产中的体系结构跟本次性能测试所采用的体系结构是一样的,交易流程也完全一致的。不过,由于硬件条件的限制,本次性能测试的硬件平台跟实际生产
6、环境略有不同。1.2.1 系统总体结构描述本系统的总体结构,包括:硬件组织体系结构、网络组织体系结构、软件组织体系结构和功能模块的组织体系结构。 1.2.2 功能模块本次性能测试中各类交易都是由若干功能模块组成的,每个交易都根据其执行特点分成了若干操作步骤,每个步骤就是一个功能点(即功能模块) ,在 xxx 业务系统中,各种交易及其包含的功能模块关系如下:1 xxx2 xxxx3 xxxx第 3 页 共 21 页本次压力测试主要设计的功能模块以及所属的路径如下表名称 所属交易 路径1.2.3 业务流程本次性能测试中,选择的各类交易的业务流程如下:1xxxxxx2xxxxxxx3xxxxxx:4
7、xxx:第 4 页 共 21 页5xxxxx6xxxx查询交易的业务流程只是单一步骤的,即:输入查询条件后获取查询结果,因此在本次性能测试中只作为一个事物处理,交易流程图略。1.2.4 关键点描述(KP)本次性能测试的关键点,就是查看 xxxx 业务系统在并发压力下的表现,即:支持的并发用户数目和并发用户发送频率,以及在较大压力下,系统的交易处理能力,并找出各类交易的性能瓶颈。1.3 性能测试环境本次性能测试环境与真实运行环境基本一致,都运行在同样的硬件和网络环境中,数据库是真实环境数据库的一个复制(或缩小) ,本系统采用标准的 CS 结构,客户端都是通过浏览器访问应用系统。其中具体的硬件和网
8、络环境如下: 服务器设备:IBM 570(DBserver) , IBM 690(APserver) 操作系统: AIX 网络环境: LAN(10M) 数据库:Oracle 客户端: PC (Windows )网络拓扑和结构图如下:第 5 页 共 21 页2 第二章 性能测试从广泛意义上讲性能测试包括:压力测试、稳定性测试、负载能力测试和可扩展性测试等。在不同应用系统的性能测试中,需要根据应用系统的特点和测试目的的不同来选择具体的测试方案,本次 XXXXXXXX 核心业务系统的性能测试主要是采用通常的压力测试模式来执行的,即:逐步增加压力,查看应用系统在各种压力状况小的性能表现。在本次性能测试
9、中,也将使用美科利的新产品性能测试诊断工具(Diagnostic)对测试应用的各层进行监控,判断 J2EE 各层次的各类方法和类的调用使用时间和效率,并帮助开发人员分析 J2EE 应用的各类交易的性能瓶颈点。2.1 压力测试在性能测试中,压力测试主要是为了获取系统在较大压力状况下的性能表现而设计并实现的,压力测试主要是获取系统的性能瓶颈和系统的最大吞吐率。2.1.1 压力测试概述本次压力测试是指针对现行的 xxx 核心业务系统的联机交易处理能力的测试,检验系统的吞吐率。本系统的压力测试主要是针对 xxxxx,检查在日间交易高峰时期,并发用户数较多的时候的处理能力等等。2.1.2 测试目的压力测
10、试的目的就是检验系统的最大吞吐量,检验现行的 xxxx 业务系统在各种压力交易量下的运行状况,检验系统地运行瓶颈,获取系统的处理能力等等。本次针对 xxxx 核心业务系统所进行的压力测试的测试目的为: 给出 xxxx 系统当前的性能状况 定位新业务系统性能瓶颈或潜在性能瓶颈 总结一套合理的、可操作的、适合公司现实情况的性能测试方案,为后续的性能测试工作提供基本思路。第 6 页 共 21 页2.1.3 测试方法及测试用例使用美科利公司(Mercury)的性能测试软件 LoadRunner,对现行的 xxxx 业务系统进行脚本录制、测试回放、逐步加压和跟踪记录。测试过程中,由 LoadRunner
11、 的管理平台调用各台测试前台,发起各种组合的交易请求,并跟踪记录服务器端的运行情况和返回给客户端的运行结果。使用的测试用例包括:联机处理交易和查询交易,其中联机交易测试试用的交易包括:xxxx 查询类交易包括:xxxx测试用例列表包括:交易种类 案例一 案例二 案例三 案例四30% 40% 25% 10%10% 10% 25% 0%20% 10% 15% 0%20% 20% 15% 10%30% 20% 20% 80%本次测试将依照如下场景进行测试:用户数功能模块业务操作 交易配比(%) 200 400 700 10000 0 0 0 02 4 10 17 245 10 21 36 527 1
12、3 27 47 675 11 21 37 535 10 21 37 527 14 29 51 725 10 19 34 4811 22 45 78 11214 28 56 98 140第 7 页 共 21 页6 12 24 41 595 11 22 38 556 13 26 45 6420 40 80 141 201针对每个测试案例,都将采用逐步加压和瞬间加压两种客户端连接方式进行,查看服务器端在客户端的连接数量变化过程中对应的处理能力,测试运行安排如下: 每隔 2 秒增加 1 个用户连接,最多增加到 200 个用户,查看并记录运行情况 每隔 2 秒增加 2 个用户连接,最多增加到 200 个
13、用户,查看并记录运行情况 一次性连接 10 个用户,查看记录运行情况 一次性连接 100 个用户,查看记录运行情况2.1.4 测试指标及期望在本次性能测试中,各类测试指标包括测试中应该达到的某些性能指标,这些性能指标均是来自应用系统设计开发时遵循的业务需求,当某个测试的某一类指标已经超出了业务需求的要求范围,则测试已经达到目的,即可终止压力测试。2.1.4.1 应用软件级别的测试指标:1) 联机交易类的执行情况 交易的平均响应时间(期望值:95%) 不同并发用户数的状况下的上述记录值2)测试结果分析情况 单笔记录的处理时间(期望值:10 个) 某个时间段内的交易处理数量 单笔能处理的最大数据量
14、 在每个交易处理中最大(最耗时)的模块第 8 页 共 21 页 在不同数量的测试数据基础上的上述记录值2.1.4.2 网络级别的测试指标: 吞吐量:单位时间内网络传输数据量 冲突率:在以太网上监测到的每秒冲突数2.1.4.3 操作系统级别的测试指标: 进程/线程交换率:进程和线程之间每秒交换次数 CPU 利用率:即 CPU 占用率() 系统 CPU 利用率:系统的 CPU 占用率() 用户 CPU 利用率:用户模式下的 CPU 占用率() 磁盘交换率:磁盘交换速率 中断速率:CPU 每秒处理的中断数 读入内存页速率:物理内存中每秒读入内存页的数目 写出内存页速率:每秒从物理内存中写到页文件中的
15、内存页数目或者从物理内存中删掉的内存页数目 内存页交换速率:每秒写入内存页和从物理内存中读出页的个数 进程入交换率:交换区输入的进程数目 进程出交换率:交换区输出的进程数目 2.1.4.4 数据库级别的测试指标: 数据库的并发连接数:客户端的最大连接数 数据库锁资源的使用数量第 9 页 共 21 页2.1.5 测试数据准备2.1.5.1 案例数据:满负荷压力根据测试系统的硬件条件,选择满负荷的压力,在系统的资源使用基本维持在 90%左右的状况下,测试 xxx 核心业务系统的处理能力。数据准备工作包括:1 xxxxx2.1.6 运行状况记录记录可扩展性测试中的测试结果及其系统的运行状况。除了记录
16、测试指标以外,应该结合测试实时记录系统各个层次的资源和参数。主要包括: 硬件环境资源 服务器操作系统参数 网络相关参数 数据库相关参数:具体数据库参数有所不同,结合各个数据库独有的特点记录3 第三章 测试过程及结果描述xxxx 务系统的性能测试共计执行了 2 次,两次执行的脚本流程作了调整,其他的环境和数据都一样。在测试数据准备完备以后,第一次测试中,操作流程为每次交易都执行用户登录操作,第二次测试中,操作流程为先进行用户登录,然后每次交易都不再执行用户登录。3.1 测试描述两次测试都是在 12 月 22 日凌晨进行的。第一次测试执行了 30 分钟左右,执行脚本都是采用每次交易都执行登录操作,
17、测试过程中,交易的执行速度随着测试的进行,越来越慢,交易的响应时间越来越长,第 10 页 共 21 页交易出错(超时)情况也越来越严重,交易在执行到 30 分钟左右,用户登录交易开始大量失败(超时)并导致后续的交易都无法完成,于是终止本次测试。第二次测试执行了 50 分钟左右,在第一次测试的基础上,调整交易流程,让每次交易都只登录一次,然后顺序执行交易逻辑。测试开始初期,交易的响应时间随着交易并发量的增加而快速增加,在测试执行了 10 分钟左右,所有的用户登录操作都基本完成,此后交易响应时间开始减少,并比较平稳的执行,绝大部分交易执行比较平稳成功率也很高,除了两个交易:xxx(Audit_Tr
18、ansaction)和 xxx(ClaimRegister_Transaction),这两个交易的执行速度特别慢,交易相应时间一直都维持在 190 秒左右和 160 秒左右,这两个交易超时现象严重,交易成功率很低,很多交易都因为超时而失败。3.2 测试场景测试中,使用逐步加压的模式,采用:每隔 2 秒启动 1 个并发用户(Vuser)的方式,即:每隔 1 秒,启动 1 个 Vuser,在 7 分钟左右启动所有的 Vuser(200 个) ,执行登录,并根据设置的时间间隔发起交易。这次测试都部署在如下的场景中。运行的脚本部署在 3 台 PC 机,主要目的就是检查在较大压力的情况下, xxxxx
19、心业务系统的性能表现。 选择了 2 台 PC,每台 PC 机部署了 70 个左右并发用户, 选择 1 台 PC,部署 60 个左右的并发用户,并运行 LoadRunner 的控制器(Controller)3.3 测试结果两次测试 AP 服务器主机上的 CPU 利用率如下:第 11 页 共 21 页CPU Total APP40204060801001:42 1:52 2:02 2:11 2:21 2:30 2:40 2:50 2:59 3:09 3:18 3:28 3:38 3:47 3:57Time of DayUser% Sys% Wait%可以看出在两次测试执行中第一次(1:52 2:2
20、0)测试过程中 CPU 的利用率都几乎达到了 100%,第二次测试中(2:45- 4:00)CPU 的利用率也达到了 95%以上。两次测试在数据库(Oracle)服务器上主机上的 CPU 利用率如下:CPU Total REQDB10204060801001:43 1:53 2:03 2:12 2:22 2:31 2:41 2:51 3:00 3:10 3:19 3:29 3:39 3:48 3:58Time of DayUser% Sys% Wait%可以看出两次测试执行中第一次(1:52 2:20)测试过程中 CPU 的利用率很低,第二次测试中(2:45- 4:00) CPU 的利用率较高
21、也达到了 75%以上,但两次测试的 CPU的 IO 等待时间却都比较高, IO 和 CPU 利用率对照表如下:第 12 页 共 21 页REQDB10204060801001:43 1:53 2:03 2:12 2:22 2:31 2:41 2:51 3:00 3:10 3:19 3:29 3:39 3:48 3:58Time of Dayusr%+sys%05001000150020002500300035004000DiskxfersCPU% IO/sec可以看出两次测试执行中第一次(1:52 2:20)测试过程中 CPU 的 IO 等待率较低,因为大多数的交易都是用户登录,都压在 AP
22、服务器上了,第二次测试中(2:45- 4:00)CPU 的 IO 等待率较高,都达到了 80%以上。两次测试的网络压力并不大,网络流量如下:05001000150020002500300035001:42 1:52 2:02 2:11 2:21 2:30 2:40 2:50 2:59 3:09 3:18 3:28 3:38 3:47 3:57Total-WriteTotal-ReadAP 服务器监控的网络流量01234561:43 1:53 2:03 2:12 2:22 2:31 2:41 2:51 3:00 3:10 3:19 3:29 3:39 3:48 3:58千Total-WriteT
23、otal-ReadDB 服务器上监控的网络流量从图中可以看出,在 10M 的局域网中,网络流量并不大。第 13 页 共 21 页3.3.1 第一次测试第一次测试使用了 200 个并发用户,并发用户的启动信息如下:各类交易的交易相应时间 (秒)Color Scale 交易名称 最小 平均 最大1 AutoUW_Transaction 0.0 23.733 87.8711 Confirm_Transaction 210.203 210.203 210.2031 CTDetail_Transaction 105.878 151.032 199.4771 EdorNoscanAppInput_Tran
24、saction 60.704 153.425 259.2341 GeneralQuery_Transaction 0.067 13.623 39.0941 IndividualQuery_Transaction 0.781 28.042 64.9841 Issue_Transaction 5.145 30.6 60.221 Login_Transaction 4.265 115.433 246.7361 ManualUW_Transaction 77.094 77.094 77.0941 NBQuery_Transaction 0.334 22.348 49.6251 PayIn_Transa
25、ction 1.503 59.944 112.6391 PayOut_Transaction 5.256 29.178 60.2791 PayOutQuery_Transaction 0.078 1.291 6.8721 PEdorTypeAC_Transaction 111.253 160.054 213.5441 PosNoScanApp_Transaction 9.254 158.276 271.381第 14 页 共 21 页1 POSQuery_Transaction 29.602 122.815 212.931 PrtNoInput_Transaction 1.722 146.87
26、9 263.0941 Relogin_Transaction 30.16 70.939 105.241 ReportInput_Transaction 1.155 101.387 184.7831 Review_Transaction 5.091 112.682 387.0871 RiskInput_Transaction 2.821 113.049 211.4271 vuser_end_Transaction 0.0 0.0 0.01 vuser_init_Transaction 0.0 0.158 2.4171 2.084 112.373 267.6591 0.278 6.312 15.3
27、941 3.75 13.56 25.9251 0.22 6.243 15.9391 8.531 109.639 210.7461 1.281 8.553 15.4741 0.093 19.469 59.271各类交易的平均响应时间图:可以看出随着测试的进行,交易相应时间逐渐增大,最终导致交易超时而失败。测试中,每秒的点击率如下:第 15 页 共 21 页测试中每秒页面的下载速度如下:根据上面两组数据,即:每秒的点击率和每秒下载页面的速度,可以看出,在测试执行开始 4 分钟以后,核心业务系统用户登录的并发数量不断在增加,但是用户登录后的数据下载量却变化不大,这样将最终导致大量的用户登录因为交易处
28、理超时而失败。第 16 页 共 21 页3.3.2 第二次测试第二次测试调整了交易处理逻辑,大大减少了用户登录的操作数目,每个用户只执行一次用户登录,然后执行对应的交易处理,交易过程中不再执行用户登录操作。运行的并发用户数目如下图:在用户登录过程中,交易的平均响应时间如下图:从图中可以看出,随着并发用户数量的不断增加,所有的交易的平均响应时间都在加大,直到并发用户数不再增加,这时候所有的交易相应时间下降到一定的数值,并一直稳定在这个数值左右。在第二次测试中,各类交易的平均响应时间如下表:(单位:秒)第 17 页 共 21 页Color Scale 交易 最小 平均 最大1 Audit_Tran
29、saction 19.481 162.12 207.6271 AutoUW_Transaction 0.0 13.001 49.4941 ClaimRegister_Transaction 75.599 143.641 163.9781 Confirm_Transaction 1.131 51.427 94.5851 CTDetail_Transaction 37.257 65.967 148.3341EdorNoscanAppInput_Transaction 16.504 79.919 169.2391 EndCase_Transaction 11.88 46.546 85.6581 Ge
30、neralQuery_Transaction 0.152 11.017 35.3211IndividualQuery_Transaction 0.875 14.455 40.5781 Issue_Transaction 4.269 14.326 30.4961 Login_Transaction 8.363 90.998 151.3441 ManualUW_Transaction 3.262 81.311 171.2841 NBQuery_Transaction 0.422 12.082 36.2971 PayIn_Transaction 0.559 32.012 74.4621 PayOut
31、_Transaction 2.204 11.121 32.3971 PayOutQuery_Transaction 0.079 1.255 5.3281 PEdorTypeAC_Transaction 37.384 66.606 137.3821 PosNoScanApp_Transaction 15.892 85.482 164.1561 POSQuery_Transaction 10.193 57.825 132.6771 PrtNoInput_Transaction 5.162 77.07 164.4581 Relogin_Transaction 16.103 61.116 74.896
32、1 ReportInput_Transaction 4.88 66.869 138.3721 Review_Transaction 8.67 61.846 302.1311 RiskInput_Transaction 9.317 49.871 123.7881 vuser_end_Transaction 0.0 0.0 0.0161 vuser_init_Transaction 0.0 0.0 0.0081 7.792 54.317 183.4091 0.694 2.419 8.5531 1.481 7.267 24.7251 0.777 2.532 6.6381 8.971 72.21 14
33、5.9231 1.384 3.977 11.5391 0.296 7.433 28.666交易相应时间时序图如小:第 18 页 共 21 页图中最上方的两条曲线(即交易相应时间最慢的)分别是:xxx (Audit_Transaction) 和 xxx(ClaimRegister_Transaction),除了这两类交易,其他各类交易都是在测试初期执行较慢,随着用户登录完成以后,各类交易的平均响应时间都稳定在对应的数值上,并都保持在 90 秒以内。测试中每秒的点击率如下:途中,从 20 分钟开始到 35 分钟,点击率下降的原因是部分查询交易循环 600 次已经成功结束,在 35 分钟左右重新启动,所有出现了途中点击率下滑的现象。下面的几幅图中,数据线下滑的原因相同。交易的吞吐率(每秒处理数据量)如下图:第 19 页 共 21 页其中数据线下滑的原因同上。4 第四章 测试报告在 xxxxx 核心业务系统的性能测试过程中,将分别撰写测试计划和性能测试报告,其中测试计划将在测试开始之前完成,用以指导测试、并做好各个阶段的计划和任务分配工作,在测试结束之后,根据测试结果,将生成测试报告。两份对应的文档名称如下: 性能测试计划书 性能测试报告