资深测试总结,性能测试目的如何做?主要看什么指标?

目录:导读

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


前言

1、性能测试是什么?

性能测试是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。

性能测试概括为三个方面:
应用在客户端性能的测试;
应用在网络上性能的测试;
应用在服务器端性能的测试;

通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测。

目前绝大多数应用都是基于网络的分布式应用,我们无法知道用户数量,用户场景的不确定性,导致系统测试时,不仅仅是功能,业务逻辑,接口测试,还要测试系统性能。

一个用户没问题,但是用户一旦多了就可能出现各种各样的问题,所以需要进行系统性能测试。

用户数量增加,系统负债增加,进行系统性能测试,知道系统承受的并发用户数量,带宽是否够用,cpu是否够用,内存是否够用,硬盘速度是否跟得上。

从服务端来看,测试服务器是否能承载用户多并发,系统是否稳定,从用户角度看响应时间速度。

当然性能测试不单是指用户数量增加的场景,还有各方面的。

拿购物网站举例,可以含有以下方面的性能测试内容(不限于此):
突发大数量用户同时操作;
长时间操作;
弱网下操作(可以在多差的网络下仍继续正常工作);

2、性能测试的目的

1)评估系统的能力

测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。(根据测试结果查看是否符合指标,如果是首个版本,可以作为规格说明书中的指标参考)。

2)识别体系中的弱点

受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。(找到弱点,在整个产品生命周期中,不断提升,所谓知己知彼)。

3)系统调优

重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。

4)检测软件中的问题

长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。(通过内存趋势图,可以预判结果)。

5)验证稳定性(resilience)可靠性(reliability)

在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。

3、性能测试主要看什么指标

性能测试不同于功能测试,功能测试只要求软件的功能实现即可,而性能测试是测试软件功能的执行效率是否达到要求。

例如某个软件具备查询功能,功能测试只测试查询功能是否实现,而性能测试却要求查询功能足够准确、足够快速。

但是,对于性能测试来说,多快的查询速度才是足够快,什么样的查询情况才足够准确是很难界定的,因此,需要一些指标来量化这些数据。

性能测试常用的指标包括响应时间、吞吐量、并发用户数、TPS等,下面分别进行介绍。

1)响应时间

响应时间(ResponseTime)是指系统对用户请求做出响应所需要的时间。这个时间是指用户从软件客户端发出请求到用户接收到返回数据的整个过程所需要的时间,包括各种中间件(如服务器、数据库等)的处理时间。

响应时间越短,表明软件的响应速度越快,性能越好。

但是响应时间需要与用户的具体需求相结合,例如火车订票查询功能响应时间一般2s内就可以完成,而在网站下载电影时,几分钟完成下载的速度就已经很快了。

系统的响应时间会随着访问量的增加、业务量的增长等变长,一般在性能测试时,除了测试系统的正常响应时间是否达到要求之外,还会测试在一定压力下系统响应时间的变化。

2)吞吐量

吞吐量(Throughput)是指单位时间内系统能够完成的工作量,它衡量的是软件系统服务器的处理能力。

吞吐量的度量单位可以是请求数/秒、页面数/秒、访问人数/天、处理业务数/小时等

吞吐量是软件系统衡量自身负载能力的一个很重要的指标,吞吐量越大,系统单位时间内处理的数据就越多,系统的负载能力就越强。

3)并发用户数

并发用户数是指同一时间请求和访问的用户数量。例如对于某一软件,同时有100个用户请求登录,则其并发用户数就是100。

并发用户数量越大,对系统的性能影响越大,并发用户数量较大可能会导致系统响应变慢、系统不稳定等。软件系统在设计时必须要考虑并发访问的情况,测试工程师在进行性能测试时也必须进行并发访问的测试。

4)TPS(TransactionperSecond)

TPS是指系统每秒钟能够处理的事务和交易的数量,它是衡量系统处理能力的重要指标。

5)点击率(HitsperSecond)

点击率是指用户每秒向Web服务器提交的HP请求数,这个指标是web应用特有的个性能指标,通过点击率可以评估用户产生的负载量,并且可以判断系统是否稳定。点击率只是一个参考指标,帮助衡量Web服务器的性能。

6)资源利用率

资源利用率是指软件对系统资源的使用情况,包括CPU利用率、内存利用率、磁盘利用率等。资源利用率是分析软件性能瓶颈的重要参数。

例如某一个软件,预期最大访问量为1万,但是当达到6000访问量时内存利用率就已经达到80%制了访问量的增加,此时就需要考虑软件是否有内存泄漏等缺陷,从而进行优化。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每一份付出,都将成为成功的催化剂。别放弃自己对未来的期许,相信自己的能力和潜力,坚定信念,迎接挑战,勇往直前,你将收获属于自己的人生辉煌。

在困境中寻找力量,在失败中寻求智慧。不要停下脚步,勇敢迈向前方,用坚持和努力书写属于自己的辉煌篇章,成就真正的人生价值。

勇往直前,脚步不停,即使路途再漫长与艰难,也要坚信奋斗的力量。相信自己的潜能,拥抱挑战,努力追寻梦想,你将创造出属于自己的璀璨人生。

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

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

相关文章

机器视觉工程师反复调试的原因是什么?

我们机器视觉项目的程序包含,业务逻辑图像处理,所以我们不单单调试图像处理部分,还要调试C,界面,数据等等。我们必须保证程序稳定性,还要保证视觉检测的稳定性。 据说,有个机器视觉工程师因为现…

用Pygame实现的乒乓球对战小游戏 附代码示例

这是一个用Pygame实现的乒乓球对战小游戏的简单示例。在这个示例中,我们将设置一个简单的游戏窗口,玩家可以通过按键来控制球拍击球。 首先,我们需要导入必要的库: import pygame import random然后,我们初始化pygam…

Jenkins 添加node节点

安装SSH插件 Jenkins- 插件管理- 可选插件- 搜索SSH Agent 配置启用SSH Server Jenkins- 系统管理 - 全局安全配置, 把 SSH Server 设置为启用(默认是禁用) 新增节点 第一种方式(SSH密钥连接): 1.Jenkins主机生成SSH密钥 [rootk…

Spring支持哪几种事务管理类型,Spring 的事务实现方式和实现原理是?

1.Spring事务简介 事务作用:在数据层保障一系列的数据库操作同成功同失败 Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败 为何需要在业务层处理事务?:有些操作在数据层无法保证同成功同失败,…

Python简单网抑云数据采集 JS逆向

嗨喽,大家好呀~这里是爱看美女的茜茜呐 环境使用: Python 3.10 Pycharm 模块使用: requests -> pip install requests execjs -> pip install execjs 爬虫实现基本思路流程: 一. 数据来源分析: 明确需求: 明确采集的网站以及数据内容 网址: https://mu…

【Spark精讲】Spark任务运行流程

Spark任务执行流程 部署模式是根据Drvier和Executor的运行位置的不同划分的。client模式提交任务与Driver进程在同一个节点上,而cluster模式提交任务与Driver进程不在同一个节点。 Client模式 Clinet模式是在spark-submit提交任务的节点上运行Driver进程。 执行流…

《码农的噩梦与修电脑的奇幻之旅》

故事从一个充满梦想的码农学习计算机编程开始。他对编写程序充满了热情,认为自己就像是一位能够编织魔法的巫师,能够创造出炫酷的虚拟世界。 然而,这个充满幻想的故事在码农入门的第一天就遭遇了突如其来的挫折。电脑故障了!所有…

数据结构 | 二叉树交换左右子树

二叉树交换左右子树的三种实现方式_交换二叉树的左右子树-CSDN博客

全网最新最全的基于Tensorflow和PyTorch深度学习环境安装教程: Tensorflow 2.10.1 加 CUDA 11.8 加 CUDNN8.8.1加PyTorch2.0.0

本文编写日期是:2023年4月. Python开发环境是Anaconda 3.10版本,具体Anaconda的安装这里就不赘述了,基础来的。建议先完整看完本文再试,特别是最后安装过程经验分享,可以抑制安装过程中一些奇怪的念头,减少…

mongodb之mongoTemplate基本操作

mongoTemplate基本操作 前提&#xff1a;已安装好mongodb服务 架构&#xff1a;springbootmongodb 1.引入依赖&#xff08;二选一&#xff09; // maven添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot…

气动工具市场分析:预计2029年将达到725亿元

从广义上讲&#xff0c;气动工具主要是利用压缩空气带动气动马达而对外输出动能工作的一种工具&#xff0c;根据其基本工作方式可分为&#xff1a;1)旋转式(偏心可动叶片式)&#xff1b;2)往复式(容积活塞式)一般气动工具主要由动力输出部分、作业形式转化部分、进排气路部分、…

排序与算法--冒泡排序

1.原理 比较两个相邻的元素&#xff0c;将较大的值交换到右边 2.举例&#xff1a;2 8 7 5 9 4 3 第一趟&#xff1a; 第一次&#xff1a;比较第一个和第二个&#xff1a;2 8 &#xff0c;不需要交换 第二次&#xff1a;比较 8 7&#xff0c;将8和7进行交换&#xff1a;2 7 …

【Python】webp图片转jpg

webp这种图片格式&#xff0c;是谷歌公司专门针对谷歌浏览器发布的一种全新的图片格式。相对于传统的jpg和png格式&#xff0c;webp格式的优势非常明显&#xff0c;更小的体积和肉眼无法区别出来的压缩损耗。但是对于很多人来说&#xff0c;下载下来之后使用不太方便&#xff0…

HT1621B新版本字段式驱动显示芯片替代PC1621K

PC1621K是一个32*4的LCD驱动器&#xff0c;可软体程控使其适用于多样化的LCD应用线路&#xff0c;仅用到3至4条讯号线便可控制LCD驱动器&#xff0c;除此之外也可介由指令使其进入省电模式 特色&#xff1a; 工作电压&#xff1a;2.4-5.2V 内建256KHz RC oscillator可外接 …

keil生成bin文件(通用型)

有些时候需要在keil里面生成bin文件&#xff0c;但找到的各种方式五花八门&#xff0c;特别是要填写文件路径等没有通用性&#xff0c;搞个不同的工程就得改下&#xff0c;找到这个跟路径无关的代码&#xff0c;进行记录下。 首先还是点开keil的设置&#xff1a; 按照上面的图…

from pycocotools.coco import COCO报错

需要注意的是&#xff0c;自己的系统是windows还是linux的系统&#xff1a; windows系统的安装&#xff1a; pip install pycocotools-windows linux的系统安装&#xff1a; pip install pycocotools 别用错了命令哦&#xff01;

html创建电子邮件链接

refer: 可以在a标签里使用&#xff1a; <a href"mailto:nameemail.com">Email</a>

【数据结构】平衡树引入

数据结构-平衡树 前置知识 二叉树二叉树的中序遍历 问题 维护一个数据结构&#xff0c;支持插入元素、删除元素、查询元素的排名、查询排名对应的元素、查询元素的前驱、查询元素的后继等。 BST&#xff08;二叉搜索树&#xff09; 作为一个基本无效&#xff08;很容易卡掉…

【大模型】800万纯AI战士年末大集结,硬核干货与音乐美食12月28日准时开炫

文章目录 WAVE SUMMIT五载十届&#xff0c;AI开发者热血正当时酷炫前沿、星河共聚&#xff01;大模型技术生态发展正当时 回望2023年&#xff0c;大语言模型或许将是科技史上最浓墨重彩的一笔。从技术、产业到生态&#xff0c;大语言模型在突飞猛进中加速重构万物。随着理解、生…

解决Sortable拖动el-table表头时,由于选择列造成的拖拽顺序错乱的bug

原因 由于我的表头是由数组循环遍历生成的&#xff0c;而选择列不在数组内&#xff0c;只能在循环外定义el-table-column&#xff0c;造成拖动时索引错乱错误代码 <el-tableheader-dragend"headerDragend"id"out-table":data"state.sliceTable&quo…