性能测试介绍

简介

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。

为什么要进行性能测试

通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。

  1. 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题。通过检测性能瓶颈,可以找到影响系统性能的原因,并针对性地进行优化和调整。
  2. 评估系统能力:性能测试可以提供有关系统在不同负载条件下的性能数据,包括响应时间、吞吐量和资源利用率等指标。这些数据可以帮助开发人员、运维人员和决策者评估系统的能力,确定系统的性能边界,并制定相应的策略和决策。
  3. 优化系统性能:通过性能测试,可以发现系统存在的性能问题,并优化系统的性能。通过调整配置、优化代码和使用合适的技术方案,可以提高系统的性能,提供更好的用户体验。
  4. 检验系统可靠性:性能测试不仅可以评估系统的性能,还可以测试系统在长时间运行、高负载和异常条件下的稳定性和可靠性。通过模拟实际使用场景,可以检验系统是否能够处理意外情况和异常情况,并找出潜在的问题。

综上所述,进行性能测试有助于发现系统性能瓶颈,评估系统能力,优化系统性能,检验系统可靠性,并提供良好的用户体验。这些优点可以帮助保障系统的稳定性和性能,并满足用户和客户的需求。

性能测试的应用场景

在开展性能测试之前,需要有一个明确的业务场景。比如如下场景:

  1. 双十一、618 即将到来,超过 x 千万的用户会同时下单。
  2. 微博明星公开恋情。
  3. 12306 抢票。

以上的场景都有一个共同特点,是在某个瞬间,来自用户的请求信息达到了远远超出平日正常使用的峰值。

当然了,除了以上的场景,日常的性能测试,也需要拉通业务,产品,确定产品的用户量,根据这些信息制定合理的用户数、并发数、响应时间等等。

如果是完全新上线的产品,在第一次发布的时候,会主要参考竞品的数据指标,制定性能测试计划。

性能测试的价值

性能测试的价值除了上述保证产品上线之后能正常使用之外,还有一个非常重要的因素,就是降本增效。

因为服务器的价格是非常昂贵的。在能满足需求的情况下,能少买一台服务器,都是在替老板省钱。

性能省钱公式:良好的容量规划能力 + 性能调优能力 = 为老板省钱

在这里插入图片描述

学习性能测试的价值体现

性能测试能力是测开工程师精华加分项。

在这里插入图片描述

性能测试知识体系

性能测试知识体系主要分为四大模块:

在这里插入图片描述

性能调优是整个性能测试过程中最难的一个环节,除了要掌握以上的知识之外,还需要具备非常强的代码基础以及非常丰富的项目经验。所以基本上能做调优的测试,都是在资深专家以上的级别。

性能测试压力曲线模型

在这里插入图片描述

这张图是一张非常经典的和测试相关的图片,叫做性能压⼒曲线图。

曲线图关键点介绍:

  • 横轴:并发的用户数,从左到右表现了 Number of Concurrent Users(并发用户数)的不断增长。
  • 纵轴:分别有三条曲线
    • Utilization(资源的利用情况,包括硬件资源和软件资源)
    • Throughput(吞吐量,这里是指每秒事务数)
    • Response Time(响应时间)
  • 区域:曲线图主要分为 3 个区域,分别是:
    • Light Load (轻压力区)
    • Heavy Load (重压力区)
    • Buckle Zone(弃忍区)

纵轴的三条曲线,每条曲线都是在性能测试过程中重点关注的信息:

  • 利用率曲线(绿色):并发用户数-资源利用情况曲线
  • 吞吐量曲线(紫色):并发用户数-吞吐量曲线
  • 平均响应时间(蓝色):并发用户数-响应时间曲线

而在随着用户数不停增大,很明显的可以看到图中有两个拐点:

  • 第一个拐点:The Optimum Number of Concurrent Users(最佳并发用户数),在 Light Load 和 Heavy Load 两个区域交界处的并发用户数。代表最优并发用户数:既不会造成资源的浪费,也可以满足现有的需求
  • 第一个拐点到第二个拐点之间:The Maximum Number of Concurrent Users(最大并发用户数),在 Heavy Load 和 Buckle Zone 两个区域交界处的并发用户数
    • 平均响应直接会越来越高,而平均响应时间会直接影响到用户的使用体验。
    • 吞吐量和利用率曲线相较平稳。
  • 第二个拐点:代表系统能承载的最大的并发用户数。一旦超过这个并发,代表服务器需要进行扩容。

过程分析:

  • 阶段 1 轻压力区:随着并发用户数的增长,资源使用率和吞吐量(TPS)会相应的增长,但是响应时间(RT)基本平稳,小幅递增;
  • 阶段 2 重压力区:当并发用户数增长到一定值后,资源利用趋于饱和,吞吐量(TPS)增长明显放缓甚至停止增长,而响应时间(RT)却进一步增大。
  • 阶段 3 弃忍区:如果并发用户数继续增长,软硬件资源占用继续维持在饱和状态(过饱和),但是吞吐量(TPS)开始下降,响应时间(RT)急剧递增。

综上所述,当系统的负载等于最佳并发用户数时,系统的整体效率最高,没有资源被浪费,用户也不需要等待;当系统负载处于最佳并发用户数和最大并发用户数之间时,系统可以继续工作,但是用户的等待时间延长,满意度开始降低,并且如果负载一直持续,将最终会导致有些用户无法忍受而放弃;当系统负载大于最大并发用户数时,将注定会导致某些用户无法忍受超长的响应时间而放弃。

所以性能测试的数据尽量保持在 CPU 利用率足够高,整个系统的吞吐负载可控。

总结

  • 什么是性能测试
  • 为什么要进行性能测试
  • 性能测试压力曲线模型

推荐学习

【霍格沃兹测试开发】7天软件测试快速入门带你从零基础/转行/小白/就业/测试用例设计实战

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (上集)

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (下集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(上集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(下集)

【霍格沃兹测试开发】精品课合集/ 自动化测试/ 性能测试/ 精准测试/ 测试左移/ 测试右移/ 人工智能测试

【霍格沃兹测试开发】腾讯/ 百度/ 阿里/ 字节测试专家技术沙龙分享合集/ 精准化测试/ 流量回放/Diff

【霍格沃兹测试开发】Pytest 用例结构/ 编写规范 / 免费分享

【霍格沃兹测试开发】JMeter 实时性能监控平台/ 数据分析展示系统Grafana/Docker 安装

【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?

【霍格沃兹测试开发】面试技巧指导/ 测试开发能力评级/1V1 模拟面试实战/ 冲刺年薪百万!

【霍格沃兹测试开发】腾讯软件测试能力评级标准/ 要评级表格的联系我

【霍格沃兹测试开发】Pytest 与Allure2 一键生成测试报告/ 测试用例断言/ 数据驱动/ 参数化

【霍格沃兹测试开发】App 功能测试实战快速入门/adb 常用命令/adb 压力测试

【霍格沃兹测试开发】阿里/ 百度/ 腾讯/ 滴滴/ 字节/ 一线大厂面试真题讲解,卷完拿高薪Offer !

【霍格沃兹测试开发】App自动化测试零基础快速入门/Appium/自动化用例录制/参数配置

【霍格沃兹测试开发】如何用Postman 做接口测试,从入门到实战/ 接口抓包(最新最全教程)

【霍格沃兹测试开发】6 小时轻松上手功能测试/ 软件测试工作流程/ 测试用例设计/Bug 管理

【霍格沃兹测试开发】零基础小白如何使用Postman ,从零到一做接口自动化测试/ 从零基础到进阶到实战

【霍格沃兹测试开发】建议收藏全国CCF 测试开发大赛Python 接口自动化测试赛前辅导 / 项目实战

更多软件测试开发视频教程点此


软件测试职业发展
在这里插入图片描述
零基础入门
在这里插入图片描述

测试必备编程篇
在这里插入图片描述
自动化测试
在这里插入图片描述
性能测试
在这里插入图片描述
测试管理
在这里插入图片描述
工程效能篇
在这里插入图片描述
面试求职篇

软件测试的面试宝典,内含一线互联网大厂面试真题、面试技巧、软件测试面试简历指导,免费领取!
在这里插入图片描述
在这里插入图片描述

  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值