性能测试概述
1.常见的性能问题
cpu的 使用率达到了1000% 内存泄漏 系统在用户量高峰期的时候不稳定,出现崩溃 系统响应速度很慢 出现线程死锁情况,资源分配不均匀等
2.为什么要进行性能测试?
进行性能测试,确定这个系统的性能指标,作为性能测试的基准(基础标准) 查看系统是否满足使用的场景 在非预期的用户数量下,系统是否可以稳定的运行 系统能够处理事务的数量 在使用的高峰期,系统是否可以很快的响应用户的请求 在预期和非预期的情况下,用户是否有舒适的体验。(响应快速,不卡顿,画面正常) 确定系统的容量(用户,数据) 确定系统的配置规划
3.性能测试流程
(1)分析性能需求,确定性能指标 (2)根据性能指标,设计性能测试的场景 (3)进行性能测试,获得性能测试报告 (4)分析性能测试报告中的指标和预期性能指标是否一致 (5)找出系统的性能瓶颈(引起性能指标有问题的环节)
4.如何确定性能测试的需求
(1)分析系统的性能需求
量化性能需求
(2)分析系统的关键业务
用户频繁使用的业务 计算量大的业务
5.性能测试指标
(1)并发数
用户同一时刻向后台发送同一个请求的用户数量(严格意义上)
(2)响应时间
用户从发送请求到页面展示出请求的数据这个过程所花费的时间 后台服务器处理请求的时间+前端页面渲染的时间
(3)事务响应时间
服务器处理每个事务平均花费时间 事务:一系列密切相关的操作的集合。 例子:支付淘宝订单:调用会员系统,支付宝系统支付系统,调用银行系统等一系列操作
(4)每秒处理事务数量
系统每秒处理的事务的数量,是衡量一个系统性能的重要指标
(5)点击率
每秒向服务器发送HTTP请求的过程
(6)吞吐量
一个系统单位时间内处理的信息量,tps,点击率,bytes/s
(7)思考时间
事务,多个操作里面的间隔时间
(8)系统的资源利用
在系统运行的时候,CPU,硬盘,网络带宽,耗电量…
6.性能测试模型——理发师模型
理发师模型是经典的解释吞吐率与响应时间的模型。比如有一家理发馆,里面有3名理发师,每个理发师水平相当,给每一位顾客理发需要10分钟。
如果用户希望剪头发的时间在10分钟以内,怎么做?
增加理发师 提高剪头效率 怎么提高一个系统的吞吐量? 框架提高算法的效率 选择并发效率高的框架 提高数据信息查询的效率
10.性能测试不同角色的关注点
(1)终端用户
响应时间,系统是否稳定
(2)软件设计开发人员
框架选型(合适的),算法的效率,数据库的选择,是否存在资源分配不合理,是否存在内存泄漏问题
(3)系统运维人员
数据库服务器配置,系统服务器配置,7*24系统运行是否稳定,系统支撑的最大的用户访问量
(4)性能测试人员
各项性能指标是否达到要求
11.性能测试的类型
性能测试的目的不一样,采用的性能测试类型不一样。
(1)基准测试
当一个新的系统开发完成或者接手一个新的系统的时候,我们需要了解这个系统的性能,需要进行基准性能测试。 基准测试要确定一个系统承受的最大并发数,响应时间,事务平均响应时间,每秒处理事务数,吞吐量,点击率等。
(2)压力测试
使系统长时间处于高压(高并发的状态下),看系统运行情况是否稳定,是否会存在资源分配不均,内存泄漏,死锁,各项的性能指标是否稳定 高并发,并发数量基本接近于系统所能承受的最大并发数,甚至高于系统的最大并发数
(3)配置测试
改变系统的软硬件配置,进行系统的性能测试,以找到一定压力下,系统最合理的配置。网吧网速快,配置高。 硬件配置:数据库,系统部署的服务器linux 网络带宽
(4)可靠性测试
系统的压力处于系统所能承受的最大压力的60%—70%左右,长时间的运行系统,观察系统的出错率,以及系统的各项指标是否稳定
|