本篇主要介绍前两部分内容,分别是性能测试基础知识和性能测试的应用场景及价值,目的是让大家对性能测试有一个基础和全面的理解,为下一篇工具选型&流程建设以及落地过程打好基础。
一、什么是性能测试?
定义:是什么?
性能,通俗来说表示软硬件产品某个维度的技术指标。在IT互联网领域,性能则表示软件系统/APP对用户操作发出的请求进行处理并响应所耗费的时间。一般来说,性能越好则代表软件系统处理请求的速度更快,单位时间内处理的请求数量更多,成功率更高。
性能测试,指的是采用各种技术方法对软硬件产品进行性能验证评估的工作。先有这个工作,然后逐渐衍生出了性能测试这一岗位,相关的技术方法和手段也是在不断实践中逐渐出现的。
性能测试岗位,验证性能是目的,验证过程则需要经过需求分析、技术验证、瓶颈定位及优化等多个环节,且这个过程往往是多次循环,直至性能指标达到预期或者满足用户使用场景。
性能测试基础概念
首先,性能测试中,尤其是对于测试同学来说,重点只需要关注这三个方面:速度、容量、资源。
- 速度:即软件系统单位时间内处理用户请求的数量和耗时,代表指标有TPS、ART、99RT。
- 容量:软件系统部署于硬件服务器上,硬件天然具有其物理性的性能上限,因此软件系统的性能是有上限的。即一个软件系统,其在具体配置下的性能最大容量是可测的,代表指标则是吞吐量、网络带宽。
- 资源:系统处理用户请求需要消耗宿主机的资源,因此在性能测试中一定要关注其资源的使用率,典型指标有CPU、Memory、DiskIO、Network、文件句柄数。
其次,针对不同的软件系统架构,性能也会分为多个层级,每个层级影响性能的因素都不同,在性能测试过程中不同层级要考虑的因素也不同。以常见的微服务架构和分布式系统为例,大体可以分为六层:
- 网络层:主要指带宽、网段、防火墙等设施,CND资源也可以划分在这一领域。
- 网关层:请求入口/业务接入层,登录验签、加解密鉴权、限流等操作,都是在网关进行。
- 应用层:无论是前端的渲染展示还是后端的逻辑处理,都可以理解为应用层。
- 中间件:中间件包含缓存、消息队列、任务调度、数据同步、服务间通信、注册配置中心等组件。
- 存储层:一般指数据存储和文件存储层,典型的组件有MySQL、HDFS。
- 物理层:无论是云服务还是自建机房,物理硬件层面都可以归纳到这一层。