性能测试学习(1)-性能测试分类与常见术语
性能测试分类与常见术语
1. 性能测试类型划分
性能测试类型 | 解释 | 目的 |
---|---|---|
负载测试 | 对被测系统不断增加压力(即用户并发数),直至性能指标超过预期 或者某项资源使用达到饱和状态(就是加压到系统崩溃)。重点观察 系统正常运行的最大值时候的一些数据和资源使用。观察程序、网络、服务器、还是数据库等哪个方面存在瓶颈。 |
发现系统处理能力的极限。 找出问题所在,做这个就是 为了发现系统是否还有隐藏 的能力。用来改进调优。 |
压力测试 | 系统在一定饱和状态下,例如cpu、内存、磁盘I/O在饱和使用情况下 ,系统的处理能力,以及系统是否会出现错误 |
该方法通过增加压力,使系 统资源使用保持在较高的压 力下,检验此时应用的表现, 重点在于有误出错信息产生, 系统对应用的响应时间等。 |
性能测试 | 根据模拟生产运行的业务压力量和使用场景组合,测试系统的性能是 否满足生产性能要求。也可以说是在特定的运行条件下验证系统的能 力状态。比如做100个并发,持续10分钟等。查看平均响应时间和 TPS是否满足生产的指标或者是设计的指标。 |
验证系统是否达到了设计要 求和是否可以满足需求。需 要将环境确认不变更。做之 前需要了解业务流程,最重 要是做之前先确定好目标即 指标要求。 |
基准测试 | 用于敏捷开发中,通过每次迭代性能变化判断是否达到预期目标。 | 直观反映每次迭代的性能变 化,可作为验收测试的一部分。 |
并发测试 | 模拟多用户并发访问同一个应用、模块或者数据记录时可能发生的 性能问题(如内存泄漏、线程锁和资源争用方面的问题) |
|
配置测试 | 通过对被测系统软硬件环境的调整,了解各种不同环境对系统性能 影响的程度,从而找到系统各项资源的最优分配原则。 (tomcat配置、apache配置、Nginx配置、连接池配置、JVM配置等) |
了解各种不同因素对系统系 能影响的程度,从而判断出 最值得进行的调优操作。 |
稳定性测试 | 给系统施加一定压力,持续运行一段时间(7*24),观察系统能 否稳定运行。(也可以说是长时间的压力测试) |
|
失效恢复测试 | 稳定性测试是如果系统发生故障,系统能否继续使用。 | 测试系统的容错能力以及 故障恢复能力(一般使用负载均衡、限流降级等技术) |
2. 性能测试的流程
3. 性能测试常见术语
-
事务
性能测试中,事务指的是从端到端,一个完整的操作过程,比如一次登录、一次筛选条件查询,一次支付等;
-
吞吐量
在性能测试过程中,吞吐量是指单位时间内服务器处理客户请求的数量,吞吐量通常使用请求数/秒来衡量,直接体现服务器的承载能力。
吞吐量作为性能测试过程中主要的指标之一,它与虚拟用户数之间存在一定的联系,当系统没有遇到性能瓶颈时,可以采用下面这个公式来计算:吞吐量=虚拟用户数*每个虚拟用户发出请求数量/性能测试消耗时间。
当系统遇到系统瓶颈公式不再适用。吞吐量与虚拟用户数的关系如图所示,吞吐量在虚拟用户数量增长到一定值时,软件系统出现性能瓶颈,此时吞吐量的值并不再随着虚拟用户数量的增加而增大,而是趋于平衡。
但在实际测试过程中,测试前吞吐量是不知道的,必须通过不断添加虚拟用户来不断地测试,才能找到吞吐量的拐点,即服务器实际吞吐量的值。
-
吞吐率
吞吐率(Throughout)是指单位时间内从服务器返回的字节数,也可以指单位时间内服务器处理客户提交的请求数。它是衡量网络性能的一个重要指标。吞吐率=吞吐量/测试时间,通常情况下吞吐量的值越大,吞吐率的值也越大,那么系统的负载能力越强。
TPS(Transaction Per Second),它是衡量系统处理能力的重要指标。
-
TPS
Transaction Per Second,表示服务器每秒处理的事务数。在没有遇到性能瓶颈时:TPS=并发用户数*事务数/响应时间
-
QPS
Query Per Second,每秒查询率,指服务器在单位时间内(秒)处理的查询请求速率 -
PV
Page View,页面浏览量,通常是衡量一个页面甚至网站流量的重要指标;
细分的话,有独立访问者数量、重复访问者数量、单独页面访问数量、用户停留时间等类型;
-
并发用户数
同一时刻与服务器进行数据交互的所有用户数量。
概念中有两点需要注意。第一:并发强调所有的用户必须在同一时刻对服务器进行施压。第二:强调要与服务器进行数据交互,如果未和服务器进行数据交互,这样用户是没给服务器带来压力的。
-
点击率
点击率(*Hit Per Second)*是指每秒钟用户向服务器提交的HTTP 数量。用户每点击一次,服务器端就要对用户提交的请求进行一次处理,从事务的角度来说,如果把每次点击作为提交事务来对待,那么点击率与TPS 的概念是等同的。
-
思考时间
思考时间(Think Time)也称为“休眠时间”,是指用户在进行操作时,每个请求之间的时间间隔。
-
响应时间
用户从客户端发送请求到所有的请求都从服务器返回客户所经历的时间。