文章目录
性能测试
问题
为什么要进行性能测试
- 软件是否能很快的响应用户的需求
- 看软件系统是否可以处理预期的负载并且有盈余能力
- 软件是否可以处理预期的事务数量
- 在预期和非预期的负载下,应用程序是否稳定
- 在能够处理用户的请求下,用户有良好的体验
性能测试关注什么
- 响应时间(3、5、10)
- 每秒事务通过数
- 点击率
- 吞吐量
- 系统运行时占用的资源
- 可靠性,可扩展性
谁关注性能测试
- 开发人员
- 系统管理人员
- 用户
- 业务人员
- 测试人员
什么时候进行性能测试
功能测试中后期
概念和术语
并发数
系统用户数:注册了系统的用户数量
在线用户数:在某一时刻,同时登录系统的用户数量
并发用户数:
广义:同一时刻,对系统的服务器发送请求的用户数量(可以是不同的操作:登录、注册、查询、添加)
狭义:同一时刻,针对同一个操作向系统的服务器发送请求的用户数量(操作是同一个)
eg:1000个系统用户同时在线,300在查询操作,150在删除操作,150浏览网页,300登录后干其他事,100在提交修改自己的个人信息
问:
系统用户数:注册的系统用户数
在线用户数:1000
并发用户数:
广义:300+150+100=550
狭义:查询300,删除150,提交修改100
响应时间
用户通过界面向后端发送一个请求,直到他要看到的内容完整展示出来中间所经历的时间
响应时间 = 用户的反应时间+网络传送时间+数据库处理时间
事务的响应时间
一个事务的处理时间
事务:eg:银行转账:A->B 50元,A-50,B+50
每秒事务的通过数(TPS)
TPS 是指每秒系统能够处理的事务数。它是衡量系统处理能力的重要指标
点击率
每秒点击数代表用户每秒向服务器提交的HTTP的请求数
吞吐量
也叫吞吐率
系统在单位时间内处理的信息量(bytes/s、tps、点击率)
思考时间
用户进行操作时,每个请求或者操作之间的间隔时间
是为了更加真实地模拟用户的操作场景
资源利用率
系统运行的时候占用资源的情况
CPU、GPU、内存、磁盘、网络带宽、电源等
理发师模型
理发师模型是经典的解释吞吐率与响应时间的模型。
比如有一家理发馆,里面有3名理发师,每个理发师水平相当,每给一位顾客理发需要10分钟的时间
性能测试模型
分类
基准测试
目的:
衡量系统的性能指标
获得系统的性能指标后,作为后期对系统性能指标的提高或改进的标准
并发测试
在一定的软硬件环境下,不断的给系统增加负载,获得系统在不同的用户数量级别之下,系统的性能表现,查看系统在负载达到什么程度的时候,系统性能达到饱和
eg:数据库有5000条数据,给系统设置1000个用户同时访问模糊查询功能,平均响应时间为2.8s
增加500个用户,1500个用户访问模糊查询功能,平均响应时间为3s
增加500个用户,2000个用户访问模糊查询功能,平均响应时间为3.2s
压力测试
在系统所能承受的最高负载,去运行系统,看系统在高强度压力下是否会存在内存泄漏,资源分配不均,死锁等情况
容量测试
测试系统的饱和容量下系统各项性能指标的表现
在一定的软硬件条件下,用户量一定,不断增加数据库中数据的数量,查看不同级别下系统各个性能指标的表现
eg:数据库有5000条数据,给系统设置2000个用户同时访问模糊查询功能,测试获得此时的系统性能指标,响应时间为2.5s
增加数据库数量到6000个响应时间为2.9s
增加数据库数量到7000个响应时间为3.1s
可靠性测试
在一定的软硬件环境下,系统的负载达到最高负载的60%~70%,长时间运行系统(30min、一周、一个月),看系统是否会发生各种问题
配置测试
通过被测系统的软/硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到各项资源的最优分配原则
Loadrunner
VUG : 产生虚拟用户脚本,录制脚本
Controller:设置运行场景,运行监控各项指标变化的情况
Analysis:收集指标数据,进行绘制图
注意:
loadrunner做性能测试的原理
- 多用户并发(多线程模拟虚拟用户)
什么是集合点?为什么需要集合点?- 让先初始化好的线程集合等待后面初始化的线程
测试过程
在做系统性能测试时,已经知道性能测试的范围,如何选取性能测试的主要功能?
- 在测试范围内选择核心功能中用户经常使用的功能