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

news/2024/11/2 17:29:32/

目录:导读

    • 前言
    • 一、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,则该元素包含在过滤后的…