🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈
本期内容主要介绍性能测试相关知识,首先我们需要了解性能测试是什么,本期内容主要介绍性能测试基础概念
文章目录
1. 性能测试是什么?1.1 引入1.2 性能测试定义1.3 性能测试与功能测试区别1.4 软件性能好坏表现1.5 影响软件性能的因素
2. 为什么要做性能测试?3. 性能测试有哪些衡量指标?3.1 并发用户数3.2 响应时间3.3 事务响应时间3.4 每秒事务通过数(TPS)3.5 点击率3.6 吞吐率3.7 思考时间3.8 资源利用率
4. 性能测试有哪些分类?4.1 基准性能测试4.2 负载性能测试4.3 压力性能测试4.4 可靠性测试
5. 性能测试执行流程是怎么样的?
1. 性能测试是什么?
1.1 引入
想一想在生活中有没有遇到过软件的性能问题呢?
比如说在日常生活中,想去看演唱会或者是音乐节,很多时候抢票,app或者网站会崩溃,导致无法抢票,不少人首先是检查自己的网络问题,5G 和 WiFi 来回切换,还是有问题,一询问,都有这个问题,原来是服务器崩溃了! 在生活中,还有很多这样的场景!
1.2 性能测试定义
那么性能测试到底是什么呢? 性能测试是:测试人员借助性能测试工具,模拟系统在不同场景下,对应的性能指标是否达到预期 (不是人工完成,需要借助工具!)
听着是不是还是有一点疑惑呢~
这里的性能测试工具指的是 —— 比如 LoadRunner、Jmeter、还有一些第三方的软件~ 这里的不同场景指的是 —— 比如在流量高峰期,或者软件持续运行一段时间,以及对应的性能指标是否达到预期等等
1.3 性能测试与功能测试区别
性能测试和功能测试的区别
从定义来说:功能测试依靠人工,性能测试依靠工具从场景来看:功能测试是看软件是否实现需求,即不管在什么场景下,只要能够正常运行,性能测试是看软件在一些极端的情况下,是不是能正常运行
1.4 软件性能好坏表现
那么什么样的表现属于软件性能好的表现,什么样的表现属于软件性能不好的表现?
【举例一】举这样一个例子,比如有两个手机,下了不同的软件~
【举例二】还有比如说软件的用户日活跃度,在双十一的时候,可以对比淘宝、京东、拼多多等用户日活跃度,用户日活跃度越高的,在同一时间承载的压力更大,其软件性能表现是更好的
【举例三】那性能不好的表现,比如说 12306 春运抢票,服务器经常会崩溃,并发量太大了~ (如何解决呢?服务器升级? 服务器升级太贵了,要掏钱!还有什么呢? 比如在登录前有一个验证,避免机器人抢票,较少用户数量,减少并发数,还可以软件算法优化等等手段)
1.5 影响软件性能的因素
影响软件性能的因素有哪些呢?
硬件方面:服务器CPU利用率、 内存、磁盘操作频率、CPU核心、带宽软件方面:算法、编程语言用户方面: 用户数量(并发数)、用户使用时长、用户访问频率
2. 为什么要做性能测试?
我们来想一下,一个软件开发出来了,是不是会希望更多的用户来使用呢~ 一旦使用的用户变多,流量就高了,既然流量高了,那软件能不能承受这个高的流量呢?
那么到底为什么要做性能测试呢? 以下是做性能测试原因:
可以获取系统性能的指标,作为性能指标的基准 为什么要作基准呢? 比如说一开始发布的软件,我们做性能测试,进行摸底,作为性能指标的基准,之后软件升级时,与这个基准进行对比~比如有一款软件登录耗时 30ms,之后升级后,登录耗时 50ms,这显然是不好的!可以验证系统的性能指标是否达到要求的性能需求
比如说有这一些性能需求:
应用程序是否能够满足系统要求的各种性能指标应用程序是否能处理预期的用户负载并有盈余能力应用程序是否能处理业务所需要的事务数量在预期和非预期的用户负载下,应用程序是否稳定是否能确保用户在真正使用软件时获得舒服的体验
发现系统的性能瓶颈,或者是内存泄漏等问题,及时优化与解决可以知道系统正常工作的情况下的最大容量有利于帮助系统运维部门能更好的规划硬件配置
3. 性能测试有哪些衡量指标?
3.1 并发用户数
1)什么是并发呢?
举这样三个场景,如下: 第一种情况:1个用户访问某个网站 第二种情况:100万个用户每隔10s访问某个网站 第三种情况:100万个用户同时访问某个网站 (注意两个条件:大量用户、“同时对系统请求”)
答案很显然,并发是第三种情况 并行和并发的定义,可以参考往期内容:【多线程】进程与线程
2)什么是用户数呢?
这里有 3 种用户数:
系统用户数:系统注册用户在线用户数:成功登录系统用户数并发用户数:大量的用户访问系统,此时访问的用户数,就是并发用户数量 (一般来说,系统用户数 > 在线用户数 > 并发用户数)
!!!注意区分业务层面和后端服务器层面的并发用户数 【业务层面的并发用户数】指的是同时向服务器发送请求的用户数量 【后端服务器层面的并发用户数】指的是同时向服务器发送请求的请求数量
比如说我打开了一个网页,这里是一个业务层面的用户数量,数量是1,但可以看到后端服务器同时向服务器发送的请求数量是 23 次,这两个是不一样的!!!
3.2 响应时间
1)用户响应时间
从图中可以看到,用户响应时间是一整个过程,用户响应时间是:N1+A1+N2+A2+N3+A3+N4
2)请求响应时间
从图中可以看到,请求响应时间是达到服务器后的时间,请求响应时间是:A1+N2+A2+N3+A3
3)影响一个软件响应时间的因素
网络带宽数据库性能服务器处理性能软件算法、逻辑用户设备
3.3 事务响应时间
比如一个点餐软件,流程:订单 ——> 支付 ——> 权益(是否为会员、券等)
这里的一个事务是一个业务度量单位,是指一组密切相关的子操作的组合。比如,一笔电子支付操作, 后台处理的时候可能需要经过会员系统,账务系统,支付系统,银行系统等,这就是是一个关于支付事 务里面包含的操作。而对于用户,往往也只关注整个支付花费了多长时间。
3.4 每秒事务通过数(TPS)
每秒事务通过数量 = 处理的事务数量/ 事务花费时间
每秒事务通过的数量越多,自然而然说明软件的性能越好!
TPS 是指每秒系统能够处理的事务数,它是衡量系统处理能力的重要指标,当压力加大时,TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈了,如果环境没有发生大的变化,对于同一系统会存在一个最大处理事务能力,它并不随着并发用户的增减而改变
3.5 点击率
【点击量】用户点击数量 【点击率】点击量/ 时间
3.6 吞吐率
【吞吐量】用户一次请求和服务器之间的数据交互量
A服务处理 100M 数据,花费时间 2 s B服务处理 10M 数据,花费时间 1s
因此,不能以吞吐量为性能衡量标准,以吞吐率为衡量指标
【吞吐率】吞吐量/时间
3.7 思考时间
【思考时间】用户在对软件进行操作的时候,每一个操作中间间隔的时间
3.8 资源利用率
【资源利用率】不同系统资源的使用情况,包含 CPU、内存、硬盘、网络等
4. 性能测试有哪些分类?
这里介绍常见的 4 种性能测试分类~
4.1 基准性能测试
让系统在正常情况下运行,观察软件性能指标
应用场景:软件刚上线需要进行性能摸底
4.2 负载性能测试
验证软件在一定的压力情况下运行,观察性能指标是否出现了拐点
4.3 压力性能测试
系统处于饱和情况下(这个饱和情况下,往往会把系统弄崩溃),观察系统性能指标
可以看到这个瓶子,下面一整个是基准性能,上面的漏斗是负载性能测试,水都满了,再给水,就是压力测试~ 这个图非常形象!
4.4 可靠性测试
验证系统在一个持续的时间段内运行,在这个运行时间段,观察系统各项性能指标是否正常! (持续 1 天 ——> 持续运行一周 ——> 持续运行 1 个月 ——> 一个季度 ——> 一年)
5. 性能测试执行流程是怎么样的?
功能测试执行流程:需求分析 ——> 测试计划 ——> 测试设计 ——> 测试执行 ——> 测试评估 (测试报告) ——> 上线 性能测试执行流程:需求分析 ——> 测试计划 ——> 选择一款性能测试工具 ——> 性能测试脚本 ——> 执行性能测试脚本 ——> 产出一个性能测试报告
【注意】性能测试出现不符合预期的情况,不叫它 BUG,它叫性能瓶颈,在性能测试中,出现了性能瓶颈,开发修复的过程,叫它优化
比如要做一个基准性能测试,这里举一个例子,
需求分析:摸底 page 接口可以容纳的用户数量 工具: Loadrunner 针对需求编写脚本 项目名称:xxx 性能摸底测试 测试人员:xxx 测试时间:2025年4月6日(一定是完成了功能测试的) 性能指标截图: 结论:page 接口容纳的人太少,测试不通过 解决方案:page 查询接口加缓存
💛💛💛本期内容回顾💛💛💛
✨✨✨本期内容到此结束啦~