这些年你走了多少弯路?接口性能测试你真的懂了?进阶测试...

news2024/11/17 6:02:36

目录:导读

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


前言

性能测试关注

响应时间:
响应时间即从应用系统发出请求开始,到客户端接收到最后一个字节数据为止所消耗的时间。

响应时间按软件的特点再可以细分,如对于一个 C/S 软件的响应时间可以细分为网络传输时间、应用服务器处理时间、数据库服务器处理时间。另外客户端自身也存在着解析时间、界面绘制呈现时间等。

响应时间主要站在客户端角度来看的一个性能指标,它是用户最关心、并且容易感知到的一个性能指标。

吞吐率 :
吞吐率指单位时间内系统处理用户的请求数,从业务角度看,吞吐率可以用每秒请求数、每秒事务数、每秒页面数、每秒查询数等单位来衡量。从网络角度看,吞吐率也可以用每秒字节数来衡量。

吞吐率主要站在服务端的角度来看的一个性能指标,它可以衡量整个系统的处理能力。对于集群或者云平台来说,吞吐率指标反映的是服务器集群对外整体能够承受的压力,该指标比用户数更容易对比。

备注:吞吐量 = 吞吐率 * 单位时间

用户数:
对于服务器集群或者云平台,几乎都是多用户系统,系统能提供给多少用户正常使用,也是一个非常重要的度量指标。我们把这些用户按照使用系统的时机不同,做如下区分。

系统用户数(System Users):指系统能够存储的用户量。
在线用户数(Online Users):指用户通过身份确认后,处于能正常使用状态的用户个数。
并发用户数(Concurrent users):指在某个时间范围内,同时正在使用系统的用户个数。
严格并发用户数(Strictly the number of concurrent users):指同一时刻都操作某个业务的用户数。

在性能测试过程中,我们要去模拟实际用户来发请求。
但是为了吐服务器产生更大的压力,我们模拟的用户操作和实际的用户操作存在一定的差异(比如模拟的用户请求比实际用户的请求更频繁),而且返种模拟的用户数和实际的用户数也难以相互换算。

所以在度量服务器集群能力时,吞吐率指标比用户数指标更实用。

性能测试方法目标

性能测试方法
1、基准测试
基准测试是基于一定规模的数据量上进行单业务或按实际用户操作同比例组合业务的测试,目的在于量化响应时间、吞吐率的指标,便于后续比对。

方法是做多组不同场景的测试,观察结果,抽取出几个关键数据做好记彔,用于以后进行性能对比和评价。

2、性能测试
通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。

特点:
主要目的是验证系统是否具有系统宣称的能力。
需要事先了解被测系统的典型场景,并具有确定的性能目标。
要求在已确定的环境下运行。

3、负载测试
通过在被测系统上不断增加压力,直到性能指标,例如“响应时间”超过预定指标或者某种资源使用已经达到饱和状态。

特点:
主要目的是找到系统处理能力的极限。
需要在给定的测试环境下进行,通常也需要考虑被测系统的业务压力量和典型场景,使得测试结果具有业务上的意义。
一般用来了解系统的性能容量,或是配合性能调优使用。

4、压力测试
测试系统在一定饱和状态下,例如CPU、内存等在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误。

特点:
主要目的是检查系统处于压力情况下是应用的表现。
一般通过模拟负载等方法,使得系统的资源使用达到较高水平。
一般用于测试系统的稳定性。

5、配置测试
通过对被测系统的软/硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则。

特点:
主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行得调优操作。
一般在对系统性能状况有初步了解后进行。
一般用于性能调优和规划能力。

6、并发测试
通过模拟用户的并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题。

特点:
主要目的是发现系统中可能隐藏的并发访问时的问题。
要关注系统可能存在的并发问题,例如系统中的内存泄露、线程锁和资源争用方面的问题。
可在在开发的各个阶段使用,需要相关的测试工具的配合和支持。

7、可靠性测试
通过给系统加载一定的业务压力(例如资源在70%~90%的使用率)的情况下,让应用持续运行一段时间,测试系统在这种条件下是否能稳定运行。

特点:
主要目的是验证系统是否支持长期稳定的运行。
需要在压力下持续一段时间的运行。
需要关注系统的运行状况。

8、失效恢复测试
针对有冗余备份和负载均衡的系统设计的,可以用来检验如果系统局部发生故障,用户是否能够继续使用系统;以及如果这种情况发生,用户将受到多大程度的影响。

特点:
主要目的是验证在局部故障情况下,系统能否继续使用。
还需要指出,当问题发生时“能支持多少用户访问”的结论和“采取何种应急措施”的方案。
一般来说,只有对系统持续运行指标有明确要求的系统才需要进行这种类型的测试。

性能测试目标

概况来说,可分为4个方面:
1、能力验证
在系统测试或验收测试时,我们需要评估系统的能力,衡量系统的性能指标。系统的能力可以是容纳的并发用户数,也可能是系统的吞吐率;系统的性能指标可以是响应时间,也可以选择 CPU、内存、磁盘、网络的使用情况。

特点:
要求在已确定的环境下进行。
需要根据典型场景设计测试方案和用例。
一般采用的方法是:性能测试、压力测试、可靠性测试、失效恢复测试。

2、能力规划
评估某系统能否支持未来一段时间内的用户增长或是应该如何调整系统配置,使得系统能够满足增长的用户数的需要。

特点:
属于一种探索性的测试
可被用来了解系统的性能以及获得扩展性能的方法,例如系统扩容规划。系统容量可以是用户容量,也可能是数据容量,或者是系统的吞吐量(系统的处理能力)。对于集群服务我们更多的是用吞吐率作为容量。

方法是:
①先对各子系统、组件进行性能测试,找出它们之间的最优配比;
②然后再通过各环节的水平扩展,计算出整体的扩容机器配比。

一般采用的方法是:负载测试、压力测试、配置测试。

3、性能调优
为了更好的发挥系统的潜能,定位系统的瓶颈,有针对性的进行系统优化。
方法是在进行系统调优时,我们需要做好基准测试,用以对比性能数据的变化,并反复调整系统软硬件的设置,以使系统发挥最优性能。

当然在进行系统优化时,我们会选取关键的指标进行优化,返时可能要牺牲其他的性能指标。如目标是优化响应时间,我们可能选取的策略是以空间换时间,以牺牲内存或扩大缓存为代价,还需要我们在各个性能指标中找到平衡点。

一般对系统的调整包括以下3个方面:
硬件环境的调整;
系统设置的调整;
应用级别的调整;
一般采用的方法是:基准测试、负载测试、压力测试、配置测试和失效恢复测试。

4、发现缺陷
和其他测试一样,性能测试也可以发现缺陷。特别是严格并发访问时是否存在资源争夺导致的响应时间过慢,或大量用户访问时是否导致程序崩溃。

方法是设置集合点,实现严格并发用户访问;或者设置超大规模用户突发访问等这样的性能测试用例进行测试。

一般采用的方法是:并发测试。

性能需求分析

性能需求获取
功能规格说明书
系统设计文档
运营计划
用户行为分析记录

性能关键点选取
主要从以下4个维度进行选取:
1、业务分析
确定被测接口是否属于关键业务接口或先分析出关键业务以间接获取该业务所访问的接口。

2、统计分析
若接口系统访问行为存在日志分析记录,则直接获取日访问量高的接口;否则根据接口发布类型,选择第3方日志分析工具间接获取。

3、技术分析
逻辑实现复杂度高的接口(如判断分支过多或涉及CPU/IO密集型运算等)
对系统(内存、CPU、磁盘IO)及网络IO等硬件资源耗用高的接口
备注:若接口因逻辑修改而重构,则需重新分析。

4、运营分析
由于运营推广活动导致日访问突增高的接口。
备注:若运营计划调整,则需重新分析。

性能指标描述
1、响应时间
在一般情况下,弱交互类接口平均响应时间不超过1秒,强交互类接口平均响应时间不超过200毫秒。

2、成功率
在一般情况下,接口响应成功率需达到99.99%以上。

3、系统资源
若为最佳负载,则系统CPU及内存使用率建议区间[50%,80%],否则建议不超过50%。

4、处理能力
立项申请书明确要求:在XX压力下(并发数)TPS需达到XX或 接口系统可支撑XX万实时在线访问。

5、稳定性
在实际系统运行压力情况下,可稳定运行N*24(一般 N >= 7 )小时。 在高于实际系统运行压力1倍的情况下,可稳定运行12小时。

6、特性指标
例:Java类应用 FullGC 次数 <= 1次/天

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每天都是一个新的开始,不要因为昨天的失败而放弃今天的努力。只有不断地奋斗和追求,才能让自己变得更加优秀,实现自己的人生价值。相信自己,坚定前行,你一定能够创造出属于自己的辉煌!

只有付出才能收获,只有奋斗才能成功。不要停下脚步,不要放弃梦想,用汗水和努力书写属于自己的故事。每一次拼搏都值得骄傲,因为你正在成为更好的自己。

每个人都有属于自己的梦想和追求,虽然道路崎岖不平,但只要保持坚定的信念和持续的努力,最终必定能够收获成功的果实。所以不要轻易放弃,坚持奋斗,成就辉煌。

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

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

相关文章

java + opencv对比图片不同

1&#xff0c;去官网下载opencv&#xff0c;下载的时候需要注册一个 Oracle 账户&#xff0c;分分钟就能注册。然后安装。我下的是4.7的。 2&#xff0c;找到jar包放进项目里 3&#xff0c;项目结构&#xff0c;比较简单 4&#xff0c;把下载的文件放进C盘 5&#xff0c;主类代…

未来独角兽!安全狗入选2023年福建省数字经济核心产业领域创新企业名单

近日&#xff0c;福建省数字福建建设领导小组办公室公布了入选2023年全省数字经济核心产业领域创新企业名单。 作为国内云原生安全领导厂商&#xff0c;安全狗凭借综合安全能力入选名单&#xff0c;荣膺“未来独角兽”称号。 厦门服云信息科技有限公司&#xff08;品牌名&#…

7DGroup性能实施项目日记4

经过了一个十一假期&#xff0c;我们的日记虽然没有更新&#xff0c;但我们的项目并没有停止。 虽然这个项目是一个依托性能培训的项目&#xff0c;但对我来说&#xff0c;这和真实的项目并无二致。我们花了几万&#xff08;根据一期的培训&#xff0c;估计在3万-4万左右&…

高速电路设计系列分享-基本概念

目录 概要 整体架构流程 技术名词解释 1.带宽的理解 2.了解转换器的精度 技术细节 小结 概要 提示&#xff1a;这里可以添加技术概要 本文主要熟悉一些基本概念。随笔&#xff0c;加一些网上用语&#xff0c;只做学习之用&#xff0c;不用深入分析。 整体架构流程 提…

最佳的SCADA软件推荐

前言 发现优化工业运营效率并最大化投资回报率的最佳“监控和数据采集 &#xff08;SCADA&#xff09;、工业物联网 &#xff08;IIoT&#xff09;、人工智能 &#xff08;AI&#xff09; 等”数字化转型技术&#xff0c;使商业组织能够提高运营效率并促进公用事业管理。当配备…

浏览器插件开发(一)入门之自制屏蔽某度广告的插件

一&#xff1a;浏览器扩展介绍&#xff1a; 浏览器扩展是一个小软件定义模块的网页浏览器&#xff0c;通常称为浏览器插件&#xff0c;大部分浏览器允许安装拓展&#xff0c;其作用有用户界面修改&#xff0c;广告拦截和Cookie管理等 包含基本平台信息的应用程序清单JSON文件 …

第十章 总结【编译原理】

第十章 总结【编译原理】 前言推荐第十章 总结10.1 概述10.2 局部优化10.2.1基本块及流图10.2.2基本块的DAG表示及其应用 10.3 循环优化*10.4数据流分析 最后 前言 2023-6-26 18:54:31 以下内容源自《【编译原理】》 仅供学习交流使用 推荐 第九章 总结及作业&#xff08;4…

态路小课堂丨三种实现光模块更高传输速率的技术你知道吗?

TARLUZ态路 随着云计算、大数据的快速兴起&#xff0c;数据中心以及电信运营商对光模块的传输速率要求越来越高。从1998年发展至今&#xff0c;光模块一直朝着更高的速率、更小的封装不断升级。光模块一般采用增加波长数、增加信号传输通道数量和提高单通道速率技术方案实现光模…

公众号内添加投票链接制作投票的软件网络投票器

手机互联网给所有人都带来不同程度的便利&#xff0c;而微信已经成为国民的系统级别的应用。 现在很多人都会在微信群或朋友圈里转发投票&#xff0c;对于运营及推广来说找一个合适的投票小程序能够提高工作效率&#xff0c;提高活动的影响力。 那么微信做投票的小程序哪个比较…

.vm文件发邮件时js未生效,无法控制显示隐藏

需求起因 最近在做一个发邮件的功能&#xff0c;是后端发邮件&#xff0c;不过邮件内容是由前端来写。 邮件内容包括姓名、手机号、邮箱&#xff0c;这三个参数都是不一定有的&#xff0c;如果没有某个参数时&#xff0c;那一行内容就不显示。 写法没错&#xff0c;但就是js…

npm详解

1.npm支持多个源&#xff08;没列全&#xff0c;有兴趣的可以自己去了解一下其他源&#xff09; &#xff08;1&#xff09;官方源&#xff1a;https://registry.npmjs.org &#xff08;2&#xff09;淘宝源&#xff1a;https://registry.npm.taobao.org &#xff08;3&#x…

《Java核心卷1》慢慢啃!读第3,4章 | 第12版

提醒&#xff1a;全文约6000字&#xff0c;是一份比较单纯的学习笔记&#xff0c;知识点基本采用条目的形式列出&#xff0c;起到查漏补缺和备忘录的作用&#xff0c;而对内容之间的逻辑结构并未进行仔细梳理。本文内容包括&#xff1a; Java的基本程序设计结构面向对象程序设计…

jmeter压力测试实战分析详解,一定要看完哦

目录 1.从压力测试说起 2.压力测试到底要关注什么 3.你想要的到底是个什么东西 4.面试总问的jvm调优到底是要干什么 5.常用的压力测试工具及命令 6.性能诊断到底难在哪里&#xff1f; 7.到底是加机器还是优化服务&#xff1f; 总结&#xff1a; 1.从压力测试说起 压力测…

59 KVM Skylark虚拟机混部-概述、架构及特性

文章目录 59 KVM Skylark虚拟机混部-概述、架构及特性59.1 Skylark概述59.1.1 问题背景59.1.2 总体介绍 59.2 架构及特性59.2.1 总体实现框架59.2.2 功耗干扰控制59.2.3 LLC/MB干扰控制59.2.4 CPU干扰控制 59 KVM Skylark虚拟机混部-概述、架构及特性 59.1 Skylark概述 59.1.…

Android SPI

1.SPI SPI全称Service Provider Interface&#xff0c;服务提供方接口&#xff0c;是Java提供的一套用来被第三方实现或者扩展的API&#xff0c;它可以用来启用框架扩展和替换组件。服务通常指一个接口或者一个抽象类&#xff0c;服务提供方是对这个接口或者抽象类的具体实现&…

kafka常见问题

1.为什么要用mq&#xff08;mq的作用&#xff09;&#xff1f; 2.引入mq会多哪些问题&#xff1f; 3. 如何解决这些问题&#xff1f; 1.1实现异步发送 有些复杂的业务系统&#xff0c;一次用户请求可能会同步调用N个系统的接口&#xff0c;需要等待所有的接口都返回了&#…

虹科分享 | 高考大数据可视化志愿填报分析-基于虹科Domo BI工具

高考是中国教育系统中一项极为重要的考试&#xff0c;它不仅是学生完成高中学业的重要标志&#xff0c;也是进入大学的门槛。每年高考都会吸引数百万学生参加&#xff0c;同时也吸引了各地高校和招生部门的关注。高考招生数据是教育研究和政策制定的重要依据&#xff0c;通过对…

技术管理第二板斧建团队-知人善用

1、什么是知人善用 知人善用就是指技术 Leader 怎么用对人&#xff1f;用好人&#xff1f;核心在于怎么给事情安排对的人&#xff1f;怎么给人安排合适的事情&#xff1f;其中&#xff0c;“人”与“事”相辅相成&#xff0c;如果把事情安排给对的人&#xff0c;不光会取得好结…

干货丨如何实现WinApp的UI自动化测试?自动化工具如何选择人?

WinApp&#xff08;WindowsAPP&#xff09;是运行在Windows操作系统上的应用程序&#xff0c;通常会提供一个可视的界面&#xff0c;用于和用户交互。例如运行在Windows系统上的Microsoft Office、PyCharm、Visual Studio Code、Chrome&#xff0c;都属于WinApp。常见的WinApp&…

Arduino IDE 2.1.0 下安装ESP32(2.0.9)

很久没玩Arduino了。新装了一台电脑&#xff0c;想重新捡起ESP32-WROOM-32开发板玩玩。官网上下了Arduino IDE 2.1.0&#xff0c;然后配置ESP32开发环境。 下载及安装Arduino IDE略过不谈。装完后还是老规矩&#xff0c;文件 -> 首选项&#xff0c;先把自定义板管理地址填入…