【性能测试】5年测试老鸟,总结性能测试基础到指标,进阶性能测试专项......

news/2024/5/19 23:23:34/

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

性能测试是为了评估系统或应用程序在特定工作条件下的响应速度、吞吐量、稳定性和可伸缩性等方面的能力。
这种类型的测试通常会涉及模拟大量用户同时访问应用程序,并对其进行负载压力测试,以确定系统在高负载情况下是否能够正常运行。

性能测试是必须要通过工具实现的,手工无法实现性能测试,因为性能测试就是模拟非常多的人同时操作系统,如果使用人工进行,那得找非常多的人一起操作,这个成本会非常庞大。

常用的性能测试工具包括JMeter、LoadRunner、Gatling等,这些工具可以模拟大量用户,并记录和分析系统的性能数据。在进行性能测试时,需要注意测试环境的搭建、测试数据的准备、测试场景的设计和测试结果的分析等方面的问题。

大数据量的测试从狭义的角度看,其实也算性能测试一部分。

因为当一个接口返回10条数据和返回100万条数据,所消耗的时间肯定不一样的,这时就会去关注数据库查询这些数据,服务器返回数据,网络传输等性能相关的问题,所以大数据量的测试其实也算性能测试的一部分。

性能指标

并发:有两个概念,
狭义的:指在同一时间点执行相同操作,例如集合点;
广义的:同一时间,向服务器发起请求。

并发用户数:
广义:同一时间点,发起请求的用户数(不管是相同还是不相同的请求,都算并发)。
狭义:同一时间点,发起相同请求的用户数
集合点:集合点只存在于狭义并发中,意思就是集合多个人在同一时间发起相同请求。集合点一般用于类似秒杀这种需要瞬间产生大量请求的场景才会用得上。

并发用户数和并发的区别:用户可以发起多个请求,例如有10用户,每个用户发起5个请求,那就相当于有50个并发。

事务(Transaction):指一个客户机像服务器发送请求,然后服务器做出反应的过程。可以认为一个模块或一个请求或一个业务为一个事务。

响应时间(RT): 从发起请求到收到请求响应的时间;
发送请求网络传输时间+服务器处理时间+返回相应网络传输时间。

Tps/Qps:
Tps(Transaction per Second):服务器每秒处理事务数,衡量服务器处理能力的主要指标
Qps(Queries per Second): 每秒查询率,这里的查询并不局限于查询数据,其他涉及查询的操作也算在内,如:查询内存、缓存等。
两者的差异:一次事务可能会触发多次查询。

吞吐量(Throughput):单位时间内处理的请求数量(事务/s);这是衡量网络每秒能通过多少次事务,如果网络没有问题时,Tps和吞吐量一般会保持一致。

吞吐量:单位时间通过的数据平均速率(kb/s)

点击率(Hit per Second):每秒点击数

资源利用率:这里是指服务器资源的使用情况,常见的有:
cpu利用率;
内存利用率;
磁盘I/O;
一般这些资源使用率不要超过80%

性能与功能测试的区别

性能测试的目的不在是找bug,而是找性能指标。
性能可以在系统界面未出来前就可以介入,因为性能测试主要是针对接口。
性能测试的时间会比功能、自动化测试时间长。

性能测试如何做

如果项目之前完全没有做过性能测试,那么首先要做的就是基准测试。找到项目当前的性能指标,比如可能在并发达到150个的时候系统就出现了异常,那么150这个并发值就是系统当前版本最大的并发量,可以作为性能指标记录下来。

后面系统做了优化或者版本迭代后,重新跑一下之前的脚本。再次得到最新的性能指标,然后将新指标和旧指标进行对比,如果指标值下降,所以新版本的性能存在问题,就要去想办法分析性能及优化。

以此类推,后面每次版本迭代或者需要进行性能测试时都得将新指标和旧指标进行对比分析,从而判断系统性能是否有下降。

性能测试的分类

负载测试:逐步增加系统负载,测试系统性能变化,并最终确定系统所能承受的最大负载量。负载测试关键是逐步增加,找到性能区间,然后根据区间再进一步缩小范围,直到找到最小的区间范围。

切勿盲目大量的增加并发数,更忌上来啥也不管就直接来个几百、几千、几万的并发,这种测试并不能得到任何有效的数据,只会浪费时间。

压力测试:压力测试的目的是做稳定性,在较大的性能压力下,持续运行比较长的时间,看系统服务及各资源利用情况。

一般压力测试建议是7*24,以24小时为倍数去设定。因为如内存的缓冲区,可能需要长时间运行才能检验是否存在问题。压力测试的并发数可以选择系统最大并发数的80~90%。

但实际工作中,很少公司有资源能满足这么长时间的运行,大部分情况下是放在下班后或周末进行。

可靠性测试:在给定的一定的业务压力下,持续运行一段时间,查看系统是否稳定。它和压力测试类似,但不同的是它不需要长时间运行,因此可靠性测试用于测试秒杀的性能会比较常见。

容量测试:在一定的软、硬件条件下,在数据库不同数据量级的情况时,对系统中读/写比较多的业务进行测试,从而获得不同数据量级下的性能指标。

如果系统已经上线运行了一段时间或者可以预知未来系统会有较多用户或数据的就需要做容量测试,因为测试环境的数据库可能就几千条测试数据,但生产上可能有几万、几十万的数据,不同的数据量级对于性能会有影响。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

人生的路途不可能一帆风顺,但每一次挫折和失败都是蜕变和成长的机会。只有坚持奋斗,才能创造出自己想要的未来。

奋斗是一种信仰,也是一种态度。不管生命中遇到怎样的考验和风险,只要勇往直前、不畏艰辛,就能不断超越自我,不断追求更好的自己。

每一个成功的人都经历过无数次的失败,每一个迈向成功的步伐,都需要付出比别人更多的努力。但只要坚定自己的方向,积极进取,我们就能够实现心中最大的梦想。


http://www.ppmy.cn/news/47558.html

相关文章

软文推广:真实有效提升软文排名与收录的三大方法!

软文是一种具有良好传播效果的文体,可以通过在搜索引擎中排名靠前的方式,为品牌或企业带来更多曝光。但是,如何让软文在搜索引擎中得到更好的收录和排名呢?在本文中,我们将讨论如何提升软文的收录和排名,以…

Unity记录3.4-地图-柏林噪声生成 1D 地图及过渡地图

文章首发及后续更新:https://mwhls.top/4489.html,无图/无目录/格式错误/更多相关请至首发页查看。 新的更新内容请到mwhls.top查看。 欢迎提出任何疑问及批评,非常感谢! 汇总:Unity 记录 摘要:柏林噪声生成…

深入理解栈:从CPU和函数的视角看栈的管理、从栈切换的角度理解进程和协程

我们知道栈被操作系统安排在进程的高地址处,它是向下增长的。但这只是对栈相关知识的“浅尝辄止”。栈是每一个程序员都很熟悉的话题,但你敢说你真的完全了解它吗?我相信,你在工作中肯定遇到过栈溢出(StackOverflow&am…

java轻量级框架MiniDao的详解

MiniDao是一款基于Java语言开发的轻量级持久层框架,它的目标是简化数据库操作流程,提高开发效率,减少代码量。MiniDao采用简单的注解配置方式,可以很容易地与Spring等常用框架集成使用。 MiniDao的主要特点包括: 简单…

ChatGPT实战100例 - (03) 网站用不惯?油猴子盘它

文章目录 ChatGPT实战100例 - (03) 网站用不惯?油猴子盘它一、需求与思路二、油猴子脚本二、油猴子脚本部署 ChatGPT实战100例 - (03) 网站用不惯?油猴子盘它 一、需求与思路 需求:网页太长,要回顶部慢慢拖? No&…

盖子的c++小课堂——第十七讲:递归

前言 通知一下,以后每周不定期更新,有可能是周六更新,也可能是周日吧,反正会更新的~~还有我新出的专栏《跟着盖子读论语》,记得订阅一下啊跟着盖子学《论语》_我叫盖子的盖鸭的博客-CSDN博客 三元表达式 三元表达式…

android studio 重装之老年人

原由:前一天估计未正确关机,导致第二天0004蓝屏开机,重装系统,装好androidstudio 以及jdk,adt (且adt要新否则连不上) a.出现adb device 未知最常见的方案就是先找到占用ADB的端口的程序,然后杀死重启服务…

【Python入门第五十二天】Python丨NumPy 数组过滤

数组过滤 从现有数组中取出一些元素并从中创建新数组称为过滤(filtering)。 在 NumPy 中,我们使用布尔索引列表来过滤数组。 布尔索引列表是与数组中的索引相对应的布尔值列表。 如果索引处的值为 True,则该元素包含在过滤后的…

分布式定时任务

本文引用了谷粒商城的课程 定时任务 定时任务是我们系统里面经常要用到的一些功能。如每天的支付订单要与支付宝进行对账操作、每个月定期进行财务汇总、在服务空闲时定时统计当天所有信息数据等。 定时任务有个非常流行的框架Quartz和Java原生API的Timer类。Spring框架也可以…

15-Django框架基础(3)

1 Django模板加载与响应 本节我们将重点讲解 Django 的模板语言。 Django 的模板系统将 Python 代码与 HTML 代码解耦,动态地生成 HTML 页面。Django 项目可以配置一个或多个模板引擎,但是通常使用 Django 的模板系统时,应该首先考虑其内置…

干货|手把手教你怎么做好一块PCB!保姆级教程

目录 一.明确设计目标 二.了解所用元器件的功能对布局布线的要求 三. 元器件布局的考虑 四.对布线的考虑 1.传输线 2.传输线的几种类型 3.端接传输线 4.非端接传输线 5.几种端接方式的比较 五.PCB 板的布线技术 一.明确设计目标 接受到一个设计任务,首先要明确其设计目标,是普通…

【vue2】使用elementUI进行表单验证实操(附源码)

🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:vue使用elementUI进行表单验证实操(附源码) 【前言】我们在构建一…

Python无框架分布式爬虫,爬取范例:拼多多商品详情数据,拼多多商品列表数据

拼多多是中国领先的社交电商平台之一,是一家以“团购折扣”为主要运营模式的电商平台。该平台上有海量的商品,对于商家和消费者来说都具有非常大的价值,因此,拼多多商品数据的采集技术非常重要。本文将介绍拼多多商品数据的采集技…

SAM(Segment Anything Model)让CV走到尽头?学CV的研究生还能正常毕业吗?怎么使用SAM?

SAM(Segment Anything Model)让CV走到尽头?学CV的研究生还能正常毕业吗?怎么使用SAM? 1. 引言 最近无论是在B站、知乎还是论坛、微博,都看了一些有关SAM的讨论。这个号称“CV界ChatGPT”的模型从出生起就…

藏经阁(七)有源蜂鸣器和无源蜂鸣器 解析

文章目录 特征区别场景选型实战应用 特征 有源蜂鸣器特征: 又被称为直流蜂鸣器包含了一个多谐振荡器只要额定直流电压可以在两端发出声音具有驱动控制简单价格略高 无源蜂鸣器特征: 又被称为交流蜂鸣器内部没有振荡器需要在两端施加特定频率的方波电…

mysql-!=,<>,=,<=>,is区别及使用推荐

!和<> 相同点&#xff1a;两个比较符作用相同 不同点&#xff1a;!是ANSI标准中的一部分&#xff0c;因此也可以用在其他数据库中。而<>只能在mysql中使用。 建议&#xff1a;如果可以都用!&#xff0c;这样可以减少必要的迁移成本&#xff0c;如mysql的sql迁移到…

MVC、MVP、MVVM:谁才是Android开发的终极之选?

概述 MVC、MVP、MVVM 都是在 Android 开发中经常用到的架构思想&#xff0c;它们都是为了更好地分离代码、提高代码可复用性、方便维护等目的而设计的。下面对这三种架构思想进行简单的介绍和比较。 MVC MVC 架构是最早被使用的一种架构&#xff0c;它把程序分成了三个部分&…

windows下Tomcat安装

目录 1.安装java环境 2.配置Tomcat环境变量 3.安装服务 4.启动前修改配置文件 &#xff08;1&#xff09;设置tomcat端口 &#xff08;2&#xff09;设置临时日志等文件夹的位置 5.放入应用 6.启动Tomcat服务 1.安装java环境 安装tomcat版本对应的JDK 比如&#xff1a;…

初始单片机.md

1.如何将HEX文件烧录到单片机 STC-ISP STC-ISP是一款单片机下载编程烧录软件&#xff0c;是针对STC系列单片机而设计的&#xff0c;可下载STC89系列、12C2052系列和12C5410等系列的STC单片机&#xff0c;使用简便。 思路&#xff1a;将电脑磁盘上已存在的文件通过串口的方式下…

Linux文件系统 文件恢复

inode和block block 用于存储文件数据。 文件是存储在硬盘上的&#xff0c;硬盘的最小存储单位叫做“扇区”&#xff08;sector&#xff09;&#xff0c;每个扇区存储512字节。连续八个扇区组成一个"块"&#xff08;block&#xff09;&#xff0c;一个块是4K大小&…