性能测试整体认知
1.性能测试技能树
测试系统、数据库、开发语言、网络知识、业务知识、测试工具
2.性能测试的目的
发现性能瓶颈
3.性能测试的分类
负载测试:逐步加压,达到既定的性能阈值目标,cup占用达到80%以下
压力测试:逐步加压,系统的某些资源达到饱和,崩溃
并发测试:同一时间,多个虚拟用户同时访问同一模块,同一功能,需要设置集合点
容量测试:数据库层面的最佳容量能力,容量预估,获得数据库的处理能力及各项性能指标
可靠性测试:稳定性、疲劳测试,系统在高压下,长时间运行系统是否稳定,7*24小时运行
异常测试:失败测试,系统架构方面的测试,如负载均衡架构中,要测试宕机、节点挂掉等情况系统的反应
4.性能测试的工作流程
需求分析-性能指标制定-脚本开发-场景设置-监控部署-测试执行-性能分析-性能调优-测试报告
性能调优-测试执行-测试报告
5.常见系统应用分层架构
显示层(view):web、android、ios、H5、client
逻辑控制层(controller):Api
数据存储层(model):mysql、mongodb、redis......
6.性能指标
事务:客户端发起的一个或者多个请求(组成的一个完成的操作),到客户端接收到从服务器返回的响应
TPS:每秒系统能处理的事务数
请求响应时间:客户端发起一个请求时,到服务端响应返回的总计时间
事务响应时间:一个或者多个请求
并发:一个时间范围内,如:1s内发起多少个用户,如:多用户在系统进行同一功能操作,多用户在系统进行不同操作
并发用户数:同一单位时间内,对系统发起请求的用户数量
吞吐量:一次性能测试过程中网络上传输的数据量总和
吞吐率:单位时间内网络上传输的数据量,吞吐率=吞吐量/传输时间
点击率:每秒钟用户向服务器提交的请求数(web应用程序特有指标)
资源使用率:cpu、内存、io等
7.性能测试需求分析
分析的目的:明确测试指标、明确测试场景
新系统:同行业比较、业务预期(日活、月活)
老系统:以往用户使用行为以及用户量
8.性能测试工具
常用工具:LoadRunner、JMeter