- 1.性能测试
- 1.1 为什么要做性能测试
- 1.2做性能测试应该关注什么
- 1.3 做性能测试谁关注
- 2. 性能测试术语
- 2.1并发数
- 2.2 响应时间
- 3.地铁模型-系统性能表现以及调优的模拟
- 4. 性能测试分类
- 4.1做性能测试的前提
- 4.2 性能测试分类的介绍
- 看系统是否能够很快响应用户的请求;
- 看系统是否能够处理预期的访问量并且有盈余能力
- 程序是否可以处理业务所需要的事务数量
- 在预期和非预期的用户负载下,用户可以获得稳定的体验
- 用户有良好的体验
- 并发用户数/吞吐量
- 平均响应时间
- 服务器资源占用情况
- 可靠性、可扩展性
- 发现引起系统问题的原因,关注采用何种技术提高系统性能
- 软/硬件配置是否合适
- 开发人员
系统架构:架构是否合理
数据库设计:数据库是否存在问题
代码:代码是否存在性能问题,系统中是否存在不合理的内存使用方式
设计和代码:系统中是否存在不合理的线程同步方式和不合理的资源竞争 - 资源管理人员(操作系统、网络、服务器等等)
资源利用率:应用服务器和数据库资源状况使用合理吗?
系统容量:系统最多能够支持多少用户的访问?系统最大的业务的处理量是多少
系统稳定性:系统能否支持7X24小时的业务访问
系统可扩展性:系统能否实现扩展,系统的瓶颈在哪里 - 用户
响应时间:时间过长用户可能烦躁 - 测试人员
以上的层面测试人员都应该关注
- 系统用户数:注册了该系统的用户数量
- 在线用户数:在某一时刻登录了这个系统的用户数
- 并发用户数:某一个时刻想系统发送请求的用户数量
- 广义的并发用户数:某一时刻向系统发送请求的用户数量,这些用户请求可以是不同的操作引起的。
- 狭义的并发用户数:某一个时刻向系统发送请求的用户数量,这些用户必须针对同一个操作向系统发送请求。
- 有一个系统有1000个系统用户,这1000个系统用户同时在线,30%用户在进行查询操作,15%在进行浏览操作,15%在进行浏览操作,15%用户在进行删除操作,30%的用户登录系统后去洗衣服吃饭了,10%的用户在进行个人信息的修改提交。
系统用户数1000,在线用户数1000,广义的并发用户数:300+150+100=550,狭义的并发用户数:查询:300个用户,删除:150个用户,提交修改:100个人
- 响应时间= 用户的反应时间+网络传送时间+后台服务器处理时间+数据库服务器处理时间(一来一回)
- 系统服务和数据库的服务一般部署在不同的电脑上
- 事务的响应(系统平均事务响应时间)
完成一个事务所需要的时间,银行转账时间 - 每秒事务通过数(Transaction Per Second)
平均每秒服务器处理事务的数量 - 点击率(平均)
每秒服务器处理的HTTP请求的个数 (点击率不变)
衡量系统服务性能的重要指标 - 吞吐量(吞吐率)
服务器每秒处理的信息量 bytes/s tps, http/s
理发师模型
理发师模型是经典的解释吞吐量与响应时间的模型,比如有一家理发店,里面有三名理发师,每个理发师的水平相当,给每个顾客理发需要10分钟的时间,如下如示:
- 资源利用率:不同的系统资源的使用情况,CPU,GPU,硬盘,网络带宽,内存,电源使用情况。
3.地铁模型-系统性能表现以及调优的模拟- 地铁站有三个刷卡机,一个刷卡机进站需要1s中,1个人进站需要1s,2个人还是1s,3个人1s完成进站,6个人1.5s完成进站,9个人16/9s完成进站。
- 火车站比较拥堵,每个人拿了很多的东西,问题是如何让乘客快速通过地铁检票口?
- 增加刷卡机;
- 增加刷卡机之间的间隔。
- 要了解系统需要做什么类型的性能测试;
- 要根据具体需要做的性能测试类型去设计性的测试场景
- 基准测试:主要为了获取系统的性能的各项指标,作为一个基准值,
基准测试什么情况下做?一个新开发的系统;/对于不了解的系统,对于系统的各项指标有个了解。 - 狭义性能测试(并发测试):模拟大量的用户去访问我们系统,访问系统的同一个功能,看系统的各项指标。
- 负载测试:不断的给系统增加负载,查看系统在不同的负载的指标下的系统性能的表现,查看性能,负载测试包含并发测试,负载测试里面还包含容量测试。
- 并发测试:在一定的软硬件环境下,并发测试是通过模拟用户的并发访问,测试多用户并发访问同一个应用,同一个模块或者数据记录时是否存在死锁或者其他的性能问题。
- 容量测试:在一定的软硬件环境下,不断的给系统的数据库增加数据,查看系统在不同的数据量的情况下,系统性能指标的表现,并且寻找拐点。
- 压力测试:高于系统最高负载的情况下,运行系统一段时间3min,查看系统的各项指标的体现,看系统是否因为高负载而出现资源分配不均,锁释放争抢问题等,系统崩溃。
- 配置测试:在不同的软硬件配置下,查看系统各项性能指标的表现,找到系统性能最佳时系统的软硬件配置。
- 可靠性测试:在低于系统最高负载下长时间运行系统,看系统是否会出现各种性能问题。系统的60%~70%, 长时间运行:一周,半个月,一个月。(以时间换空间)
- 失效恢复测试:失效恢复测试方法是针对备份或负载均衡的系统设计的,这种测试方法可以用来检验系统布局发生故障,用户继续能否使用系统,以及如果这种情况发生,用户将受到多大程度的影响。
- 并发测试的例子:软硬件环境一定,数据库数据有5000条,进行一个模糊查询,1000个用户同时访问这个模糊查询,响应时间为2.8s,增加到1500个,响应时间为2.9s,增加用户到2000个,响应时间为3.1s。
| 能力验证 | 规划能力 | 性能调优 | 发现缺陷 | |
|---|---|---|---|---|
| 性能测试 | * | |||
| 负载测试 | * | * | ||
| 压力测试 | * | * | * | * |
| 配置测试 | * | * | ||
| 并发测试 | * | |||
| 可靠性测试 | * | |||
| 失效性测试 | * | * |



