性能测试
性能测试方案设计的方法和思路
获取性能需求:
需求一:用户数信息
在线用户数、并发用户数、系统用户数
需求二:业务数据量
调查每天的业务量、当前和未来的数据总量、高峰时期的业务数量。
需求三:场景业务的调查
1.系统关键业务
2.高访问量的功能,经常承受压力的功能点
需求四、与性能指标指标相关的调查
1.每秒事务数(TPS)
2.响应时间
3.平均响应时间
有两类性能场景:
1、前端性能测试
2、服务器端性能
(负载、稳定性测试:在特定网络、软件条件下,进行系统加压,长期运行)
通过负载,确定各种工作负载下系统的性能
3、性能需求评估:
判断是否进行性能测试主要从下面两个方面进行思考:
业务角度:
1.系统是公司内部 or 对外?
2.系统使用的人数的多少?
系统角度:
a)系统架构:
如果一个系统采用的框架是老的系统框架(通常大公司都有自己的统一框架),只是在此框架上增加一些应用,其实是没有必要做性能测试,因为老框架的使用肯定是经过了验证的。如果一个系统采用的是一种新的框架,可以考虑做性能测试。
b)数据库要求:
很多情况下,性能测试是大数据量的并发访问、修改数据库,而瓶颈在于连接数据库池的数量,而非数据库本身的负载、吞吐能力。这时,可以结合DBA的建议,来决定是否来做性能测试。
c)系统特殊要求:
从实时性角度来分析,某些系统对响应时间要求较高,比如证券系统,系统的快慢直接影响客户的收益,这种情况就有作并发测试的必要,在大并发量的场景下,查看这个功能的响应时间。
从大数据量上传下载角度分析,某些系统经常需要进行较大数据量的上传和下载操作,虽然此种操作使用的人数不会太多,但是也有必要进行性能测试,确定系统能处理的最大容量,如果超过这个容量时系统需要进行相关控制,避免由于不人工误操作导致系统内存溢出或崩溃。
*4、确定性能测试点: *
4.1)关键业务 判断是否属于关键业务。 4.2)请求量 判断日请求量是否较大,同时是否是关键业务。 4.3)逻辑复杂度
性能测试
性能测试 是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。性能测试主要有压力测试,负载测试和容量测试三种。
负载测试一种主要为了测试软件系统是否达到需求文档设计的目标,譬如软件在一定时期内,最大支持多少并发用户数,软件请求出错率等,测试的主要是软件系统的性能。
强度测试也就是压力测试,压力测试主要是为了测试硬件系统是否达到需求文档设计的性能目标,譬如在一定时期内,系统的cpu利用率,内存使用率,磁盘I/O吞吐率,网络吞吐量等,压力测试和负载测试最大的差别在于测试目的不同。
容量测试是确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等。