看《做性能测试需要做些什么》
我们说性能测试,那么性能测试主要是什么呢?
软件性能包含两方面特性:时间特性和性能特性。
时间特性:系统处理客户请求的响应时间=呈现时间+系统响应时间
性能特性:测试过程中,资源消耗情况(CPU、内存、磁盘)
响应时间=网络传输时间+应用服务器处理时间+数据库处理时间
N1 N2 N3 N4 A1 A3 A2
并发用户数:同一时刻 进行数据交互 所有用户数(备注: !=系统所有用户 & !=所有在线用户。所以,并发用户数如何计算?需参考、分析历史数据、试上线运行)
吞吐量:单位时间 服务器处理的字节数 B/s通过不断添加虚拟用户数,到吞吐量的拐点,即服务器吞吐量的最大值)
吞吐率:单位时间 从服务器返回的字节数=吞吐量/测试时间
TPS:每秒 处理的事务。
资源利用率:CPU利用率、内存、磁盘、网络
思考时间:用户操作时,每个请求之间的时间间隔
Ir_think_time();
性能测试划分:
负载测试-》不断加压,直到不可再加压
压力测试-》使用模拟负载方法,测试系统已达到一定的饱和程度
配置测试-》调节系统软硬件环境,使系统在不同环境下进行性能测试,用于系统调优和规划能力。
并发测试-》模拟多用户同时并发
可靠性测试-》在一定业务压力下持续运行
基准测试
各类测试的执行阶段:
编码:并发--压力--容量
测试:负载--基准--配置
需理解最佳用户数和最大用户数。开始性能测试前,需要知道:
1、客户的要求
如系统同时满足**用户登录,平均每个用户登录时间不超过**秒
2、目前系统的性能
求最大用户数和最佳用户数,系统分析并找到压力点
3、系统瓶颈
分析可能对系统造成瓶颈的逻辑业务
4、长时间压力下性能状况(强度测试)-》内存溢出
理论如上,操作如下:
1、需要熟悉我们的测试环境,从硬件、软件、网络环境三点入手
1)硬件方面:
分析服务器系统、CPU、内存、硬盘写入情况
2)软件方面:
从前端、中间件、服务器入手
3)网络环境
做测试,主要是标准是什么,目的是什么,即预期结果。那么如何获取我们的标准,获取 “有效的”性能需求呢?
例子:证劵行业某业务的“实际需求”
系统总容量达日委托6000万笔,成交9000万笔
系统处理速度每秒7300笔,峰值每秒10000笔
实际股东帐号 3000万
-》需求:最佳并发用户数需求:每秒7300笔
最大并发用户数需求:每秒10000笔
基础数据容量:实际股东帐号数3000万
业务数据容量:日托6000万,成交9000万
如果我们根据以下2个假设:
1。采用2/8比例,即80%的业务在20%的峰值时间内完成,20%的业务在80%的非峰值时间内完成,那么我们可以得到峰值处理业务量1.5亿的80%为1.2亿,非峰值处理业务量1.5亿的20%为3000万;
2。1天系统运行时间为20小时,另4小时为非营业的后台处理时间,那么峰值时间20小时的20%为4小时,非峰值时间20小时的80%为16小时。
我们可以计算到:
1。平均峰值处理速度1.2亿/4*3600秒接近9000个/秒;
2。平均非峰值处理速度3000万/16*3600秒约500个/秒;
我们可以计算到:
1。平均峰值处理速度1.2亿/4*3600秒接近9000个/秒;
2。平均非峰值处理速度3000万/16*3600秒约500个/秒;
考虑到特殊情况的发生,我们建议实际峰值处理速度要能达到理论计算的平均峰值处理速度的1.5到2倍,所以最终确定下来的建议峰值处理速度为9000个/ 秒*2=18000个/秒。我们拿这个结果向客户说明,告诉他们原来的需求很可能在发生特殊情况时无法有效处理,客户最终接受了我们的说法并调整了他们的需求。
这叫需求开发,通过分析修正了客户的不合理需求,满足了他们最根本的需要“系统总容量达到日委托6000万笔,成交9000万笔”,而处理速度是他们根据自己的需要估算出来的,并不准确。
所谓需求开发,也就是根绝客户的核心需求,为客户设计完整的需求体系,甚至根据客户的业务发展需要,为客户设计核心需求和需求体系。
取自:http://www.cnblogs.com/jackei/archive/2006/12/12/589473.html
性能测试常见指标:
1、工作负载
2、响应时间
3、吞吐量
TI:客户端往服务器发出的请求包吞吐量
TO:服务器返回请求数据包的吞吐量
每秒点击数:服务器的处理能力