13. 性能测试

news2024/11/28 22:54:36

目录

1. 什么是性能测试

1.1 常见的性能问题

1.2 性能测试的概念

1.3 性能测试和功能测试的区别 

1.4 性能的好坏如何定义

1.5 影响性能的因素

2. 为什么进行性能测试

3. 性能测试常见专业术语以及衡量指标

4. 性能测试分类

4.1 基准测试 

4.2 负载测试

4.3 压力测试

4.4 可靠性测试

5. 性能测试如何展开


1. 什么是性能测试

1.1 常见的性能问题

  1. 资源泄漏,包括内存泄露
  2. CPU 使用率达到 100%,系统被锁定等
  3. 线程死锁,阻塞等造成系统越来越慢
  4. 查询速度慢,或者列表的效率低
  5. 受外部系统影响越来越大

1.2 性能测试的概念

 测试人员借助性能测试工具,模拟系统在不同情况下性能指标是否正常

1.3 性能测试和功能测试的区别 

功能测试关注软件的功能是否实现,而性能测试不仅要实现功能同时要测试在极端条件下用户的访问量增加能否正常实现。

性能测试在功能测试完成后执行。

1.4 性能的好坏如何定义

  • 用户登录所需时间短的性能好

  • 页面不卡顿的性能好

  • ....

1.5 影响性能的因素

  1.  硬件:服务器 CPU、服务器内核、内存、磁盘、网络带宽...
  2.  软件:编程语言、算法
  3.  用户:用户数量、用户操作频率

2. 为什么进行性能测试

  • 获取系统性能的指标,作为性能标准的基准
  • 验证系统的性能指标是否达到要求(性能需求)
    • 应用程序是否能够满足系统要求的各种性能指标
    • 应用程序是否能够处理预期的用户负载并有盈余能力
    • 应用程序是否能够处理业务所需要的业务数量
    • 在预期和非预期的用户负载下,应用程序是否稳定
    • 是否能确保用户在真正使用软件时获得舒服的体验
  • 发现系统的性能瓶颈,内存泄漏等问题
  • 系统正常工作的情况下的最大容量
  • 帮助系统运维部门能更好的规划硬件配置

3. 性能测试常见专业术语以及衡量指标

并发:软件在运行的过程中,有大量的用户同时访问。

并发用户数:大量用户请求系统,此时的用户数量就是并发用户数。

并发请求数:大量用户请求系统,服务器接收到的请求数。

用户数:

  • 系统用户数:系统数据库中维护的用户数据对应的数量
  • 在线用户数:登录系统的用户数量
  • 并发用户数:同时对系统发起请求对应的用户数量

系统用户数 > 在线用户数 > 并发用户数(系统限制用户登录成功才能访问系统)

响应时间/平均响应时间(RT/ART):

  • 用户响应时间:用户从发起请求到接受到请求花费的时间。
    • N1 + A1 + N2 + A2 + N3 + A3 + N4
  • 请求响应时间:服务器接受到请求到发出响应的时间。
    • A1 + N2 + A2 + N3 + A3

用户的设备、网络、服务器的配置(CPU、内存、带宽)、服务器对应的算法、逻辑处理、数据查询的速度等都会影响响应时间。 

事务:此时的事务是针对一个业务单位来定义的。

事务响应时间:服务器处理一个事务所花费的时间。

每秒事务通过数:TPS 指每秒系统能够处理的事务数,它是衡量系统处理能力的重要指标。

点击率:用户在单位时间内提交的 HTTP 请求数。点击率越大,服务器压力越大。

吞吐量:用户和服务器之间数据传输量。

吞吐率:吞吐量/时间(Size/time),单位时间内系统处理的客户请求的数量。吞吐率越大性能越好

思考时间:用户在进行操作时,每个请求之间的间隔时间。

资源利用率:不同系统资源的使用情况,包含 CPU、内存、硬盘、网络等。

4. 性能测试分类

  • 代码级别的性能测试
  • 基准性能测试
  • 并发测试
  • 压力测试
  • 配置测试
  • 可靠性测试

4.1 基准测试 

基准测试也叫一般性能测试。

什么是基准性能测试?

让系统在正常情况下运行,观察系统的性能指标是否正常

跟前一个版本的性能指标进行对比。

4.2 负载测试

负载测试是指让系统背负一定的压力,运行一段时间观察系统是否存在性能拐点。

4.3 压力测试

让系统处于极限或者饱和状态时,观察系统性能指标(压力测试会使系统崩溃)。

4.4 可靠性测试

使系统长时间运行,观察系统性能是否出现异常。

5. 性能测试如何展开

功能测试展开的流程:

需求分析 -> 测试计划 -> 测试开发、测试设计 -> 测试执行 -> 测试评估

性能测试展开的流程:

需求分析(性能需求) -> 测试计划(确定性能测试的工具) -> 测试开发(性能测试脚本编写) -> 测试执行(跑脚本) -> 测试评估(测试报告,包括性能问题和优化方案)

性能测试的时候,发现的问题不叫 BUG,叫性能瓶颈;开发进行修复的过程叫性能优化

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/967951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FC-CLIP-卷积永存:开放词汇分割与单一冻结卷积CLIP

论文链接:https://arxiv.org/abs/2308.02487 Github:GitHub - bytedance/fc-clip: This repo contains the code for our paper Convolutions Die Hard: Open-Vocabulary Segmentation with Single Frozen Convolutional CLIP 机构:约翰霍普…

PLL原语例化使用时常见问题

目录 一、前言 二、常见问题 问题一、综合阶段报错[Synth 8-439] 问题二、综合阶段报错[Synth 8-448] 问题三、在实现阶段DRC报错DRC PDRC-38 问题四、在实现阶段DRC报错DRC PDRC-43 一、前言 在设计中经常会使用PLL的原语进行例化使用,PLL如果直接例化使用将…

十二、MySQL(DQL)分组/排序/分页查询如何实现?

总括 select 字段列表 from 表名 [where 条件] (group by)/(order by)/(limit) 分组字段名 分组查询 1、分组查询 (1)基础语法: select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组之后的过滤条件] (…

【C++初阶】queue的常见操作和模拟实现以及deque的介绍

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

相交链表:k神题解的一点小感慨

题目: 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 朴素解法 用…

linux中busybox与文件系统的关系

busybox与文件系统 在 Linux 中,BusyBox 是一个精简的、多功能的工具集合,它包含了一系列常用的命令和实用程序,如 ls、cp、mkdir 等。BusyBox 的目标是提供一个功能完整而又占用空间较小的工具集合,适用于嵌入式系统或资源受限的…

Linux系统中驱动面试分享

​ 1、驱动程序分为几类? 字符设备驱动 块设备驱动 网络设备驱动 2、字符设备驱动需要实现的接口通常有哪些 open、close、read、write、ioctl等接口。 3、主设备号与次设备号的作用 主设备号和次设备号是用来标识系统中的设备的,主设备号用来标识…

信息熵 条件熵 交叉熵 联合熵 相对熵(KL散度) 互信息(信息增益)

粗略版快速总结 条件熵 H ( Q ∣ P ) 联合熵 H ( P , Q ) − H ( P ) 条件熵H(Q∣P)联合熵H(P,Q)−H(P) 条件熵H(Q∣P)联合熵H(P,Q)−H(P) 信息增益 I ( P , Q ) H ( P ) − H ( P ∣ Q ) H ( P ) H ( Q ) − H ( P , Q ) 信息增益 I(P,Q)H(P)−H(P∣Q)H(P)H(Q)-H(P,Q) 信息…

vulhub-tomcat弱口令

1.启动靶场 进入文件 进入目录 进入到靶场 启动靶场 docker-compose up -d 2.查看 ip地址 3.使用nmap对ip进行 扫描 发现存在8080的端口,并且端口是开放的状态,apache,tomcat搭建的 4.访问ip地址的端口 点击Manager app 6.开启BP进行抓包 随…

【力扣每日一题】2023.9.3 消灭怪物的最大数量

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目比较长,我概括一下就是有一群怪物,每只怪物离城市的距离都不一样,并且靠近的速度也不一样&#x…

每日一题 1921. 消灭怪物的最大数量

难度:中等 思路: 已知速度和距离,可求时间必定先消灭时间最短的怪物求得时间数组排序,只要在第 i 秒时,time[i] > i ,那么就可以消灭第 i 个怪物 代码: class Solution:def eliminateMax…

CVPR2022 Semi-Supervised Semantic Segmentation Using Unreliable Pseudo-Labels

Semi-Supervised Semantic Segmentation Using Unreliable Pseudo-Labels 使用不可靠的伪标签的半监督语义分割 Paper:https://openaccess.thecvf.com/content/CVPR2022/html/Wang_Semi-Supervised_Semantic_Segmentation_Using_Unreliable_Pseudo-Labels_CVPR_202…

vue+element-ui el-table组件二次封装实现虚拟滚动,解决数据量大渲染DOM过多而卡顿问题

一、此功能已集成到TTable组件中 二、最终效果 三、需求 某些页面不做分页时,当数据过多,会导致页面卡顿,甚至卡死 四、虚拟滚动 一、固定一个可视区域的大小并且其大小是不变的,那么要做到性能最大化就需要尽量少地渲染 DOM 元素…

一键导出文件名和位置,让你轻松管理文件!

想要轻松管理你的文件吗?试试我们的文件名和位置导出工具,一键导出文件名和位置,让你轻松管理你的文件!我们的工具可以在不修改文件名的前提下,快速导出文件名和位置,让你随时随地查找和管理你的文件。 第…

C++算法 —— 动态规划(1)斐波那契数列模型

文章目录 1、动规思路简介2、第N个泰波那契数列3、三步问题4、使用最小花费爬楼梯5、解码方法6、动规分析总结 1、动规思路简介 动规的思路有五个步骤,且最好画图来理解细节,不要怕麻烦。当你开始画图,仔细阅读题时,学习中的沉浸…

绩效被打了 C 就要走人吗?

文章目录 前言一、什么是绩效?二、上级的评价是客观的吗?三、工作必须要和上级搞好关系吗?四、自我评价要写多少字?五、绩效低的话会被开除吗?六、低绩效钱会少吗?七、有关星球提问统一回复 前言 今天是英雄算法联盟九…

横向对比 npm、pnpm、tnpm、yarn 优缺点

前端工程化是现代Web开发中不可或缺的一环,它的出现极大地提升了前端开发的效率和质量。 在过去,前端开发依赖于手动管理文件和依赖,这导致了许多问题,如版本冲突、依赖混乱和构建繁琐等。而今,随着众多前端工程化工具…

荣耀10 关闭自动更新

1.电脑端下载安装手机助手 2.下载adb工具https://adbdownload.com/ 3.解压后,打开工具所在目录,在地址栏输入cmd然后回车 4.进入这黑麻麻的工具,输入adb devices然后回车,确认连接到手机 输入命令 adb shell pm disable-user com…

理解 std::thread::detach

C多线程并发编程入门(目录) detach 的作用 detach 的作用就是让线程独自执行。 为何需要 detach 在 理解 std::thread::join 中,我们看到了,如果所有线程都是一开始就在 main 函数中创建好的,那么只需要有一个 joi…

香橙派Orangepi Zero2 刷机步骤

目录 1.香橙派Orangepi Zero2简介 2.刷机 2.1物料准备 2.2 格式化SD卡 2.3 烧录镜像到SD卡 2.4 安装SD卡到Orangepi 2.5 连接Pi电源 2.6 MobaXterm 串口登陆Orangepi 2.6.1 连线示意图 2.6.2 MobaXterm 使用 2.6.3修改登陆密码 2.6.4 网络配置 2.7 SSH登陆开发版…