性能测试报告.docx
《性能测试报告.docx》由会员分享,可在线阅读,更多相关《性能测试报告.docx(15页珍藏版)》请在冰点文库上搜索。
性能测试报告
性能测试报告
压测示例接口性能测试报告
1.概述
1.1项目背景
本次测试为一次探索性测试,目的是想通过对片单接口的通用业务的压力测试来了解大量用户并发访问片单接口对服务器相关性能指标及业务请求响应时间的影响,并且尽可能到找到影响这些要素的瓶颈。
1.2适用对象
此报告为项目经理、项目组开发人员、软件测试人员及其他与此项目相关的人员提供参考数据。
1.3测试目标
本次测试通过对压测示例接口进行压力测试,并监控其服务器的资源消耗情况,了解在高并发用户的压力请求下,服务器的业务处理能力和响应时间是否满足要求,服务器的资源性能指标是否存在瓶颈,是否影响用户和其他系统的使用(如系统能否及时处理所有的接口数据请求、内存是否存在泄露和不够、CPU是否高负载运行、接口请求的数据响应时间是否过长)。
1.4术语定义
术语名称
术语解释
虚拟并发数
单位时间内同时利用性能测试工具进行请求的用户数量
平均响应时间
响应时间指的是从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间。
单位:
秒。
事务处理数
单位时间内服务器处理的交易数量。
吞吐量
吞吐量指的是单位时间内处理的客户端请求的数量,通常情况下,吞吐量用请求数/秒或页面数/秒来衡量。
每秒点击率
平均每秒时间内客户端向服务器发送的界面请求数量。
表1.4术语说明表
1.5参考资料
无
2.测试环境
2.1服务器软硬件环境
2.2
2.3压力机软硬件环境
设备用途
设备型号
操作系统
软件/版本
内存
CPU
硬盘
负载机1
ThinkServerRD540
MicrosoftWindowsServer2008R2Standard
LoadRunner/11.0
16G
Intel(R)Xeon(R)CPUE5-2609v202.50GHz
2TB*2
表2.2压力机软硬件环境配置说明表
2.4测试网络环境
网络环境概述:
测试的网络环境公司的内网测试环境。
网络环境拓扑图:
3.测试案例
根据性能测试的选取原则,并结合片单接口的业务模型分析,共选择了典型的业务1个:
用例编号
用例名称
脚本名称
接口访问串样例
QZ001
口令预览
hongbaokouling
QZ002
查看口令
hongbaokouling
QZ003
下一时段口令
hongbaokouling
QZ004
点击活动按钮
hongbaokouling
表3测试案例说明表
4.测试场景
测试机编号约定
负载机编号:
F1
负载机IP:
127.0.0.1
场景编号格式约定
直接压力机编号+用户数+日期+执行编号
场景名称
场景设计
场景一
负载机1:
(F1_1000_20170509_001)
在1台负载机上加压1000个用户
场景运行策略:
每秒起5个用户,持续运行2小时,结束时,每秒结束10个用户。
LoadRunner事务设置:
脚本设置每个接口分别为一个事务,设置虚拟用户为1000Vusers
LoadRunner集合点策略:
未设置集合点
LoadRunner思考时间策略:
忽略思考时间
LoadRunner参数化设置:
已进行参数化设置
资源监控设置:
在应用服务器和数据库服务器上使用nmon监控服务器的系统资源消耗
表4测试场景说明表
5.测试工具
工具名称
版本
说明
LoadRunner
11.0
压力测试工具
Nmon
nmon_x86_64_centos6
Linux系统资源监控工具
nmonanalyser
4.2
Nmon的日志分析工具
表5测试工具说明表
6.测试策略
本次压力测试的测试策略是使用Loadrunner结合典型的被测接口业务数据流,通过生成一定数量的虚拟用户负载,模拟真实在线用户访问接口获取数据的业务模型,测试业务场景的事务响应时间和相关服务器的资源消耗情况。
测试过程中的测试脚本生成,主要是用Loadrunner录制生成。
选择合适的通信协议(WebHTTP/HTML协议)和浏览器(FireFox)访问业务接口录制测试脚本,录制完成后分析测试脚本,优化脚本,去除不必要的内容,根据实际情况设置事务点、集合点和参数化。
最后回放测试脚本,检查脚本是否有错误,从而得到一个可以执行的完整的测试脚本。
测试程序中的数据参数化,主要根据业务接口访问的逻辑,选取被参数化的数据对象,以便更真实的模拟实际的业务场景,即不同用户访问不同的接口逻辑获取不同的业务数据,而不是单一的访问获取相同数据,具体的脚本中参数化的对象在测试场景中详细加以描述。
测试中需要的测试数据(如参数化的数据来源),主要从实际生产环境中获取,以保证测试数据的真实有效,数据的大小和数量根据实际场景情况进行选取。
由于本次测试使用成熟的性能测试工具Loadrunner进行测试,故简要介绍其测试流程:
1.通过Loadrunner录制测试脚本和准备测试相关数据(参数化需要的数据源)。
2.创建场景并对场景进行设置:
设置用户加压方式、持续运行时长和执行完成后减压方式,设置集合点的释放策略、设置运行时设置(Rum-timesetting),添加系统资源计数器或者使用nmon在服务器上监控服务器资源。
3.运行场景。
4.场景运行完成后生成测试结果,结合测试结果及搜集的相关资源指标进行深度分析。
7.测试结果
7.1场景一结果
1.分析概要:
从分析概要中可以看出,场景并发用户数为1000个虚拟用户;平均每秒点击数572.419;总点击数4,297,720;
2.事务概要:
3.每秒请求数(HitsperSeconds):
从图中可以看出,点击率平均为572;
4.TotalTPS分析(TotalTransactionpersecond):
图中可以看出,所有接口的平均每秒处理成功的事务数为572左右,确实与每秒请求数保持一致;
5.TPS分析(Transactionpersecond):
6.吞吐率分析(Throughtput):
从吞吐率来看,平均每秒的吞吐为1.355MB
再来看一下吞吐率和点击率的组合图:
从图中可以看出两者的图线基本重合,说明服务器能正确处理客户端请求并返回结果。
7.接口服务器资源使用分析:
使用atop查看运行时系统服务器资源的使用情况
刚开始运行时:
运行一个小时后
A)CPU
从上图可以看出运行时cup占用在35%左右
B)内存和磁盘
从上图可以看出总内存为:
15.5G,空闲内存=free+cache=2.3G左右,提示内存不足,SWP(交换空间)在内存不足的时候会使用,交换空间的剩余量在不断减小,当运行十几个小时的时候,交换空间会被占满;
DSK磁盘也显示繁忙,a盘的使用率为63%;PAG虚拟内存分页情况出现问题,换出内存的页数远大于换入内存的页数,影响速度
C)JAVA线程与JAVA进程
通过pstree实时监控JAVA线程:
pstree-ppid|wc-l
D)NETWORK
通过nmon监控30分钟:
./nmon–f-t–s10–c500
从图中可以看出,网络流量读达到2MB/s左右,写达到3MB/s左右,占用的网络带宽不高。
E)TCP连接数
通过netstat实时监控:
whiletrue;donetstat-n|awk'/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}';echo"******************************************";sleep1;done
从图中可以看出,当前等待连接数约44765,当前已连接数约1166;等待数量太多,建议优化;
8.结果分析与总结
如下为对压测示例接口进行压力测试的概况:
1、统计结果看出,在进行1000并发时,各类事务的响应时间已超过1秒,TotalTPS低于1000,不满足基本需求;
2、从服务器资源占用方面考虑,1000并发时CPU占用约35%,network占用约5MB;满足满足基本需求;
从上图可以看出总内存为:
15.5G,空闲内存=free+cache=2.3G左右,提示内存不足,SWP(交换空间)在内存不足的时候会使用,交换空间的剩余量在不断减小,当运行十几个小时的时候,交换空间会被占满;
DSK磁盘也显示繁忙,a盘的使用率为63%;PAG虚拟内存分页情况出现问题,换出内存的页数远大于换入内存的页数,影响速度
3、通过TCP连接数可以看出,等待连接数目已达到4万9千以上,等待数较多,磁盘io平均时间为0.2ms;
9.附件
(一)LoadRunner中的一些术语的官方解释:
WebResources中的PageDownTimeBreakdown(页面下载时间分解图)中各个时间定义如下:
Name
Description
DNSResolution
Displaystheamountoftimeneededtoresolvethe
DNSnametoanIPaddress,usingtheclosestDNS
server.TheDNSLookupmeasurementisagood
indicatorofproblemsinDNSresolution,or
problemswiththeDNSserver.
Connection
Displaystheamountoftimeneededtoestablishan
initialconnectionwiththeWebserverhostingthe
specifiedURL.Theconnectionmeasurementisa
goodindicatorofproblemsalongthenetwork.It
alsoindicateswhethertheserverisresponsiveto
requests.
FirstBuffer
Displaystheamountoftimethatpassesfromthe
initialHTTPrequest(usuallyGET)untilthefirst
bufferissuccessfullyreceivedbackfromtheWeb
server.Thefirstbuffermeasurementisagood
indicatorofWebserverdelayaswellasnetwork
latency.
Note:
Sincethebuffersizemaybeupto8K,thefirst
buffermightalsobethetimeittakestocompletely
downloadtheelement.
SSLHandshaking
Displaystheamountoftimetakentoestablishan
SSLconnection(includestheclienthello,server
hello,clientpublickeytransfer,servercertificate
transfer,andother—partiallyoptional—stages).
Afterthispoint,allthecommunicationbetweenthe
clientandserverisencrypted.
TheSSLHandshakingmeasurementisonly
applicableforHTTPScommunications.
Receive
Displaystheamountoftimethatpassesuntilthe
lastbytearrivesfromtheserverandthe
downloadingiscomplete.
TheReceivemeasurementisagoodindicatorof
networkquality(lookatthetime/sizeratioto
calculatereceiverate).
FTPAuthentication
Displaysthetimetakentoauthenticatetheclient.
WithFTP,aservermustauthenticateaclientbefore
itstartsprocessingtheclient’scommands.
TheFTPAuthenticationmeasurementisonly
applicableforFTPprotocolcommunications.
ClientTime
Displaystheaverageamountoftimethatpasses
whilearequestisdelayedontheclientmachinedue
tobrowserthinktimeorotherclient-relateddelays.
ErrorTime
Displaystheaverageamountoftimethatpasses
fromthemomentanHTTPrequestissentuntilthe
momentanerrormessage(HTTPerrorsonly)is
returned.
WebResources中的TimetofirstBufferBreakdown(第一次缓冲时间分解)各时间定义: