软件性能测试的目的主要有以下三点:
1.评价系统当前性能,判断系统是否满足预期的性能需求。
2.寻找软件系统可能存在的性能问题,定位性能瓶颈并解决问题。
3.判定软件系统的性能表现,预见系统负载压力承受力,在应用部署之前,评估系统性能。
而对于用户来说,则最关注的是当前系统:
1.是否满足上线性能要求?
2.系统极限承载如何?
3.系统稳定性如何?
因此,针对以上性能测试的目的以及用户的关注点,要达到以上目的并回答用户的关注点,就必须首先执行性能测试并明确需要收集、监控哪些关键指标,通常情况下,性能测试监控指标主要分为:资源指标和系统指标,如下图所示,资源指标与硬件资源消耗直接相关,而系统指标则与用户场景及需求直接相关。
性能测试监控关键指标说明:
1. 资源指标
CPU使用率:指用户进程与系统进程消耗的CPU时间百分比,长时间情况下,一般可接受上限不超过85%。
内存利用率:内存利用率=(1-空闲内存/总内存大小)*100%,一般至少有10%可用内存,内存使用率可接受上限为85%。
磁盘I/O: 磁盘主要用于存取数据,因此当说到IO操作的时候,就会存在两种相对应的操作,存数据的时候对应的是写IO操作,取数据的时候对应的是是读IO操作,一般使用% Disk Time(磁盘用于读写操作所占用的时间百分比)度量磁盘读写性能。
网络带宽:一般使用计数器Bytes Total/sec来度量,Bytes Total/sec表示为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较。
2.系统指标
并发用户数:某一物理时刻同时向系统提交请求的用户数。
在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求。
平均响应时间:系统处理事务的响应时间的平均值。事务的响应时间是从客户端提交访问请求到客户端接收到服务器响应所消耗的时间。对于系统快速响应类页面,一般响应时间为3秒左右。
事务成功率:性能测试中,定义事务用于度量一个或者多个业务流程的性能指标,如用户登录、保存订单、提交订单操作均可定义为事务,如下图所示:
单位时间内系统可以成功完成多少个定义的事务,在一定程度上反应了系统的处理能力,一般以事务成功率来度量,计算公式如下所示:
超时错误率:主要指事务由于超时或系统内部其它错误导致失败占总事务的比率。
二、如何监控关键指标?
1.资源指标监控
主要针对各服务器系统平台(Windows、Linux、Unix等)资源使用进行监控。
可以使用系统自带的性能监控工具或者第三方工具进行监控,如Windows系统自带的“系统性能监视器”,如下图所示:
Linux系统下,free、vmstat、sar、iostat等命令监控内存、CPU、磁盘IO等的使用情况,如下图所示:
第三方监控工具,如spotlight,spotlight是quest公司开发的一款可以针对多种系统平台及数据库进行监控的可视化工具,如下图所示:
Nmon是IBM提供的监控AIX和Linux系统资源的免费工具,可以对收集的资源信息通过Excel进行统计分析形成直观的统计图,如下图所示:
2.系统指标监控
系统指标监控一般通过性能测试工具(如LoadRunner、Jmeter等)以图形化方式监控,如下图所示,并发用户数与平均响应时间关系图。
原文转自:http://www.uml.org.cn/Test/201408182.asp