不就是性能测试吗?竟让我一个月拿了8个offer,其中两家都是一线大厂

news2024/11/23 19:20:21

随着互联网的发展,单机软件的逐渐减少,系统从单机步入“云”时代,软件系统功能和规模也越来越庞大,盗版也越来越难,用户规模也越来越大,企业盈利随之爆发式地增长。

随着用户数量的增多,系统稳定就成为企业的首要技术保障,稳定才能带来流量,才能赚钱。下面我们回顾一下著名的性能事件(这些事件内容来自于百度)。

[案例1] 2012 年11.11“11月11 日凌晨零时起,某企业11.11正式启动,激增的流量瞬间险些让系统陷入瘫痪状态。随后其宝出现短时间内无法付款,多家品牌商系统崩.......这损失的都是钱啊!如图2-1所示。

某宝和某东为首的电商赚足了眼球。某宝双十一网络瘫痪遭诟病,其宝被“抢瘫”,好不容易进入支付过程,某宝提示系统繁忙,经过反复尝试,用户花费很长时间才能实现支付。破1000万用户访问时,部分某宝官网打开时间需要15~23分钟,对于一般用户是绝对不能接受的,其宝开始瘫痪无法响应,部分页面无法显示等。在关键的时刻各种性能问题到底给我们上了一节什么样的课程?来看看2012年优化性能后的数据:2012某宝双11销售额191亿、2013某宝双11销售额350亿、2014某宝双11销售额571亿、2015某宝双11销售额912亿、没错直接损失了100多亿

如果性能测试做足能够把好关,提前做好预案,一天就可以营收100多亿,要知道好多传统百货集团一-年也营收不了 这么多。

来看看某东2012年因某宝瘫痪后流量暴涨,大量用户登录。结果某东的服务器被大流量冲垮,服务器也瘫痪。无论如何2012年11月11日某宝和某东的瘫瘓,引人深思,性能测试的价值也随之体现。

[案例2] 12306订票网站(内容来自于百度)

12306网站创建初期的几年每逢春节就瘫痪,2014年 1月9日,当日开始出售1月28日的火车票,是当年的售票高峰日。这--天的网页浏览量高达88亿次,88亿次/12小时=20W/秒+的点击。这个网站的多次瘫痪证明了,性能测试的重要性,也证明了不是用硬件就能解决软件性能。

[案例3] 2008奥运会票务系统

由于订票人数远远超出预期(性能需求没做到位,设计也没有到位,无排队等设计)刚开放后不久就瘫痪,造成了部分人无法从网络获得门票。

[案例4]亚马逊网站瘫痪

2014年11月6日因华为手机P6在欧美销售太过火爆,电商国际巨头亚马逊网站(当地)瘫瘓。造成的损失不仅仅只是活动损失,还有声誉。要应对大规模的用户共同使用一套系统,那必须有相对应的强壮性能的系统,性能测试是对这套系统的一一个质量保障,如果性能测试有漏洞,那么就会引发非常惨烈的后果,因此上线前的性能测试必不可少。

下面是软件测试分类,如图2-2所示。

从图2-2可以看到性能测试在整个软件测试环节占了50%的内容,如测试内容中,负载测试、压力测试、性能测试、大数据量测试、恢复测试、内存泄漏测试、竞品测试(比较测试)和可靠性测试。一共14个测试内容,性能的测试占领8个,可想而知性能测试在软件测试中的重要程度。

软件业大部分软件开发之初一般考虑的是软件功能的市场需求契合度,是否能被市场认可。这个前提成立之后,才会有较大的用户群体去使用,从而出现性能问题。然而根据金字塔理论,到了后期在进行修改,投入和产出不成比例。一般公司在做出确定可以盈利的产品后,会对产品进行再次开发,来达到这个性能要求。所以第一一个产 品(试验)的性能要求和真正的推广产品(成熟)的性能要求不是一个量级,企业发展到-一定程度就得关注性能,重视性能。

性能测试的价值就是保障系统的性能,提供良好的用户体验;尽可能地找出系统性能薄弱环节,帮助进行性能优化。说了这么多都是体现出性能测试的重要性,接下来我们就讲讲性能测试如何学习?【文末免费分享性能测试学习资源】

大家好,今天小濠从5个方面来介绍性能测试

一、什么是性能测试
二、性能测试的目的
三、如何做性能测试
四、性能测试关注的指标
五、性能结果分析

一、什么是性能测试

是不断的通过不同场景的系统表现去探究系统设计与资源消耗之间的平衡。

我们可以认为性能测试是:通过在测试环境下对系统或构件的性能进行探测,用以验证在生产环境下系统性能是否达到预估的性能需求,发现系统可能存在的性能瓶颈,进而改善优化并系统的性能,提高系统的可扩展性、稳定性。

从上面的描述可以看出,性能测试的主要工作包括:获得预估的性能需求、搭建测试环境、执行测试、分析测试结果。其中,最为重要两个工作是确定测试的目的、方案,并对结果进行分析。

二、性能测试的目的

(1)验证系统是否满足预期需求;

(2)验证系统在高压下的表现;

(3)验证系统是否能持续稳定的运行;

(4)探测系统的瓶颈和产生瓶颈的原因;

(5)探测系统设计与资源之间的最佳平衡,改善并优化系统的性能。

三、如何做性能测试

1. 负载测试: 找到系统稳定时(或满足性能需求下)的最大吞吐量;(要有响应时间、成功率的限制,比如定义:99.9%的响应时间必需在1ms之内,平均响应时间在1ms以内,100%的请求成功)

2. 稳定性(通过浸泡测试soak test): 以系统稳定时的最大吞吐量(或满足性能需求时的最大吞吐量),长时间对系统进行测试,已检查系统是否稳定

3. 压力测试: 找到系统极限值,系统瓶颈(系统崩溃临界值)(要求:响应时间可以变慢,但系统不能崩溃;)(根据测试目的,选择是进行负载、压力、稳定性还是几种测试;)

4. 并发有两个概念:

多个用户同时进行相同操作,访问同一接口——单个业务接口并发;

多个用户同时访问系统,但进行不同的操作,访问不同的接口——系统级并发;(在性能测试过程中,根据 具体场景和业务 选择合适的方案,一般第2种更符合实际场景。以上2种都需要进行测试;)

5. 测试流程: 确定测试目的与需求——根据需求与场景,梳理测试要点——根据测试目的,制定测试方案——准备测试环境与数据——测试执行(脚本或工具)——统计测试结果——分析结果——测试报告

PS:

1 .测试执行时,执行多次,取平均结果更为准确。

2. 单机并发不够时,采用多机分布式并发;

3. 测试过程,一定要尽可能模拟实际应用场景;

为了方便大家自学性能测试,我也准备了一份5g的性能测试视频资源在我的qq群里(技术交流和资源共享)需要的朋友可以点击下方小卡片进群免费获取哦~

【软件测试学习交流群】每天学习一点,今后必成大神

四、性能测试关注的指标

测试人员关注(单次业务相关指标):

并发用户数

响应时间:TP(百分比分布统计)

吞吐量:tps/qps

成功率

失败率

开发人员关注(系统层面指标):

1. Tomcat、数据库等;

2. 容量:系统能承载的最大访问量是多少?系统最大的业务处理量是多少?

3. 稳定性:是否支持7*24小时(一周)的业务访问?

运维人员关注(硬件资源相关指标 ):

硬件资源消耗情况:CPU、内存、I/O读写速度、网络带宽等

五、性能结果分析

以下相关指标分析时需注意:

1.响应时间不要光看平均值,平均值不靠谱。要求最好定成:99.9%请求必须<1s,所有的平均响应时间必须<1s,这两个条件限制;

2.响应时间要和吞吐量TPS/QPS挂钩;

系统的性能如果只看吞吐量,不看响应时间是没有意义的。我的系统可以顶10万请求,但是响应时间已经到了5秒钟,这样的系统已经不可用了,这样的吞吐量也是没有意义的。

我们知道,当并发量(吞吐量)上涨的时候,系统会变得越来越不稳定,响应时间的波动也会越来越大,响应时间也会变得越来越慢,而吞吐率也越来越上不去(如上图所示),包括CPU的使用率情况也会如此。所以,当系统变得不稳定的时候,吞吐量已经没有意义了。吞吐量有意义的时候仅当系统稳定的时候。

所以,吞吐量的值必须有响应时间来卡。比如:TP99小于100ms的时候,系统可以承载的最大并发数是1000qps。这意味着,我们要不断的在不同的并发数上测试,以找到软件的最稳定时的最大吞吐量。

3. 响应时间吞吐量要和成功率挂钩 ;

不难理解,如果请求可以并发10w,但是成功率只有40%,那也没什么用。

性能测试的失败率的容忍应该是非常低的。对于一些关键系统,成功请求数必须在100%,一点都不能含糊。

4. CPU、内存等硬件资源占比持续超过90%,说明性能存在瓶颈;

5. 带宽波动起伏很大,说明带宽受限;

今天的分享就到此结束了


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源免费分享点击下方小卡片扫码进入我的软件测试企鹅交流裙免费获取!

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

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

相关文章

Chrome浏览器修改用户资料(User Data)的存放位置

2022.12.13一、 原先采用的在快捷方式中修改目标的方法&#xff0c;没有效果。二、创建链接1. 复制2. 删除3. 创建链接mklink参考用于缓解C盘压力&#xff0c;将浏览器用户数据存放于其他的指定位置。简单记录一下操作步骤。 其中用户数据可以如此查找&#xff0c;在浏览器地址…

数字虚拟人发展简史

虚拟人的发展史就是技术的发展史 作为元宇宙时代的基石&#xff0c;虚拟人的发展历史与制作技术的进步高度相关。在元宇宙概念中&#xff0c;未来每个用户都将依托虚拟人作为自己的化身进入虚拟世界中探索&#xff0c;要达成这个目的&#xff0c;就要求数字虚拟人不仅拥有人的…

java计算机毕业设计ssm智慧消防维保系统后端设计与实现3cmg0(附源码、数据库)

java计算机毕业设计ssm智慧消防维保系统后端设计与实现3cmg0&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都…

【毕业设计】微信小程序校园跑腿系统 校园跑腿小程序 校园跑腿微信小程序

一、前言 大学是一个小社会&#xff0c;我们在学校学习到专业知识的时候&#xff0c;有会遇到很多形形色色的任务&#xff0c;但最重要的依旧是社会经历。很多大学生都会想着在大学闯出一片新天地&#xff0c;所以他们往往会选择自己或者带上志同道合的朋友来一起创业。一次好…

泛微京桥通集成SAP,让采购流程闭环、业务管理一体化

SAP作为强大的业务处理平台&#xff0c;推动着组织采购管理走向数字化。其中的SAP MM&#xff08;MaterialManagement&#xff09;&#xff08;物料管理&#xff09;涉及到物料管理全过程&#xff0c;主要包括&#xff1a;物料需求计划、物料主数据、采购、供应商评价、库存管理…

简单聊聊 WebSocket

简单聊聊 WebSocket 1、简介 ​  WebSocket 是一种在单个 TCP 连接上进行 全双工 通信的协议。 扩展&#xff1a; ​  WebSocket 与 Socket 的区别 WebSocket 是应用层的一个通信协议&#xff1b;Socket 是对 TCP&#xff08;或UDP&#xff09;抽象封装的一组接口&#xf…

浅谈责任链设计模式在框架源码中的运用

写在前面&#xff0c;该篇博文为我在部门的技术分享&#xff0c;所以文字记录不是特别详细。本文更像是一个大纲&#xff0c;由浅入深讲解责任链设计模式。 浅谈责任链设计模式在框架源码中的运用一、分享目的二、简单介绍三、逐个拆解四、源码环节1、Tomcat2、Spring MVC3、Sp…

【MySQL基础】什么是MySQL约束?什么是主键约束?

目录 一、什么是MySQL约束&#xff1f; 二、MySQL约束有什么作用&#xff1f; 三、MySQL约束常见七大类&#xff1f; 主键约束(primary key) PK 1.概念 2.主键约束的相关操作 添加单列主键 添加多列主键(联合主键) 通过修改表结构添加主键 删除主键 &#x1f49f; 创…

【Notebook系列第十三期】基于多模型推理任务的车辆特征识别

在之前的课程中&#xff0c;我们分享的推理任务大部分都只由一个模型构成&#xff0c;但在真实的业务场景下&#xff0c;往往需要我们将多个模型放在一起去运行&#xff0c;才能获取到这个任务的最终预期结果。 因此&#xff0c;本次分享将通过一个简单的示例演示如何使用 Ope…

12月13日(第11天)

腾讯云上通过面板开放端口&#xff0c;不起作用&#xff0c;解决办法&#xff1a;手动在服务器上开放&#xff0c;参考文章地址&#xff1a;在腾讯云控制台下配置防火墙端口无效 直接关闭防火墙是最简单的&#xff0c;systemctl stop firewalld&#xff0c;然后再再腾讯云上打开…

解决端口被占用的方法(查看端口和关闭端口)

目录 前言必读 一.简介 二、解决办法 1.查看该端口是否被占用 2.关闭占用该端口的进程 前言必读 读者手册&#xff08;必读&#xff09;_云边的快乐猫的博客-CSDN博客 一.简介 在使用各种端口时候经常会出现端口被占用导致代码程序无法执行或者执行错误。一般都是由于该端…

DataGear 4.3.0 发布,数据可视化分析平台

DataGear 4.3.0 发布&#xff0c;增强图表和看板功能&#xff0c;具体更新内容如下&#xff1a; 新增&#xff1a;看板模板新增dg-dashboard-auto-render属性&#xff0c;用于控制看板是否自动渲染&#xff1b;新增&#xff1a;看板模版新增dg-dashboard-code属性&#xff0c;…

Spring Batch 批处理-作业参数设置与获取

引言 书接上篇Spring Batch批处理-作业Job简介&#xff0c;上篇带小伙伴们了解色作业Job对象&#xff0c;那这篇就看一下作业参数是啥一回事&#xff0c;同时要怎么设置参数并获取参数的。 JobParameters 前面提到&#xff0c;作业的启动条件是作业名称 识别参数&#xff0…

MQ消息中间件

MQ消息中间件1、应用场景1、流量削峰2、应用解耦3、异步处理2、MQ分类1、ActiveMQ2、kafka3、RocketMQ4、RabbitMQ3、RabbitMQ详解3.1、核心概念3.2 RabbitMQ基本知识点3.3消息发布确认3.4 交换机1、应用场景 1、流量削峰 将访问的大流量通过消息队列做缓冲&#xff0c;我们可…

二叉树-二叉树的基础遍历(3)

二叉树的遍历的三种方式 1.前序遍历&#xff1b; 先访问根结点&#xff0c;然后再访问左子树&#xff0c;最后访问右子树 2.中序遍历&#xff1b; 先访问左子树&#xff0c;中间访问根节点&#xff0c;最后访问右子树 3.后序遍历&#xff1b; 先访问左子树&#xff0c;再访问右…

PicoRV32 笔记 05

接口信号 PicoRV32 提供一个本地存储器接口&#xff0c;Native Memory Interface。 本地存储器接口采用 valid-ready握手信号。这种机制在axi总线中使用相同&#xff0c;能够实现流控&#xff0c; 和axi总线不同点&#xff0c;PicoRV32本地接口使用一组valid-ready信号&…

什么是SWDM4和100G QSFP28 SWDM4光模块?

随着OM5多模光纤(MMF)的推广和40G或100G数据中心传输网络的大规模部署&#xff0c;SWDM技术逐渐进入人们的视野并开始得到应用。那么&#xff0c;什么是SWDM4呢&#xff1f;什么是100G SWDM4光模块&#xff1f;它们的优势是什么&#xff1f;跟着易天光通信ETU-LINK看下面的文字…

十、原型、原型链、闭包和立即执行函数、插件开发初始

十、原型、原型链、闭包和立即执行函数、插件开发初始 原型 什么是原型&#xff08;prototype&#xff09;&#xff1f; 无论何时&#xff0c;只要创建一个函数&#xff0c;就会按照特定的规则为这个函数创建一个prototype属性&#xff0c;指向原型对象。 function Car(){}…

Vue入门与指令

Vue入门 1.1、MVVM编程思想 MVVM&#xff1a;页面输入改变数据&#xff0c;数据改变影响页面数据展示与渲染。 M&#xff08;model&#xff09;&#xff1a;普通的javascript数据对象。 V&#xff08;view&#xff09;&#xff1a;前端展示页面。 VM&#xff08;ViewModel&…

Jmeter初了解-接口并发测试

Jmeter初了解-接口并发测试 介绍 我们在开发的时候&#xff0c;经常会需要进行接口压力测试&#xff0c;确定接口运行的稳定情况 这里我们就使用java开发的测试工具Jmeter来进行测试。 Jmeter 官网地址 Apache JMeter™应用程序是开源软件&#xff0c;是一个 100% 纯 Jav…