三天“崩”两次!12306系统为何扛不住?性能测试全揭秘

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


随着互联网的蓬勃发展,软件在我们生活中的重要性愈发凸显。从电商平台到交通出行应用,软件无处不在,为我们提供了便捷的服务。

然而,随之而来的是软件Bug和崩溃问题,这些问题时常让用户感到困扰。

1月8日上午,“12306崩了”再次登上热搜。有人称火车购票平台12306出现无法登录、无法购票、查询车票卡顿等情况。

时值春运购票高峰期,12306已经是三天里第二次出现故障。此前1月6日,就有不少用户反馈出现无法登录等类似状况。还有用户在社交平台发文称“买票钱付完看不到购票记录”。这不仅给乘客带来不便,也再次引发了对软件性能测试的关注。

多家企业性能测试面试题目

在即将到来的“金三银四”的职业招聘季,很多企业面试时性能测试的问题更是必不可少,虽然,各企业性能面试题目略有差异,但很多题目的答案都是一样的,这种类型的性能测试题目搜集如下:

  

  

  

  

  

性能测试面试题目解答

针对以上题目,可以用同一个答案,完整的性能测试过程如下:

  

其中,“分析性能需求”需要详细说明,详细内容如下。

性能需求从3个方面进行分析:

1 性能测试内容

性能测试内容包含如下6个内容:

(1)涉及哪些子系统;

(2)软件主干功能;

(3)访问量较大的功能;

(4)业务逻辑复杂的功能;

(5)数据量较大的功能;

(6)特殊场景。

2 性能测试类型

性能测试类型分为两大类型,具体如下:

(1)后端服务器性能测试(使用工具JMeter)

该类性能测试包括:

  • 并发量性能测试,包括:基准测试、负载测试、压力测试、稳定性测试;

  • 数据处理能力的性能测试,包括:基准测试、负载测试、压力测试、稳定性测试。

(2)客户端性能测试(使用工具adb、solopi、monkey)

3 能测试指标和预期结果

性能测试指标和预期结果,根据性能测试类型不同,分为如下:

(1)后端服务器性能测试

  • 聚合报告里的指标:

  • 并发量(并发量性能测试指标):根据具体项目估算预期结果,没有统一标准;

  • 响应时间:符合1-3-5或2-5-8s规则(根据具体项目要求选择);

  • 吞吐率(数据处理能力的性能测试指标):使用2-8原则(80%的业务数据在20%的时间内处理完成)计算得出预期结果(根据软件具体业务计算);

  • 事务成功率:一般95%以上,支付功能:大于99%;注册功能:100%;特殊主流程功能:99%以上等等。

  • 资源监控报告的指标:

  • CPU:不超过80%(上下浮动5%);

  • 内存:不超过80%(上下浮动5%);

  • 网络:不超过80%;

  • 磁盘:不超过90%。

(2)客户端性能测试指标

  • 冷热启动时间:预期结果:2-3-5s;

  • fps:帧率标准:每帧低于16ms,每秒60帧左右;

  • gpu:

1、控制过度绘制为2x;

2、非强制gpu的情况下,无红书区域,即,无4x过度绘制情况;

3、浅红色区域总面积不超过屏幕的1/4或1/3。

  • 安装包物理内存:36MB左右;

  • CPU:

1、空闲,CPU占有率:0%;

2、模拟用户常用功能运行,CPU不超过:30%;

3、长时间运行应用,CPU不超过:50%;

4、高负荷运行时,CPU不超过:75%。

  • 耗电量:一般不超过:10MB/小时;

  • 流量:不超过10M;

  • 页面切换时间:遵循3-5-8s原则;

  • 稳定性测试:monkey+solopi,以上指标都在预期结果之内。

备注:以上性能指标及预期结果只是性能测试行业的一般规则,根据项目具体要求可做相应的调整。

做好以上性能测试软件就不会出现性能问题了吗?答案是否定的,比如,最近出现的12306系统崩溃事件。

12306系统崩溃

春运火车票开售,12306订票系统崩溃:

  

那么12306系统崩溃的原因是什么?我们测试工程师如何在性能测试过程中加强性能测试将如上问题“扼杀在摇篮里”?开发工程师需要如何优化以上的问题呢?

12306系统崩溃的原因

12306系统崩溃的原因揭晓:瞬间访问量过大或因第三方脚本。

根据最新数据显示,是因为瞬间访问用户量过大,系统无法正常响应。这可能是由于未经授权的第三方应用程序或脚本导致,他们通过利用某些特定时间窗口的规则来批量获取车票,而这时12306系统的访问量达到了峰值,最终导致了系统的崩溃。

分析以上原因可得出12306系统崩溃的具体问题如下:

1 服务器负载过重

针对瞬间访问量过大问题,12306可以在系统架构和算法上进行优化,比如采用分布式架构、负载均衡、限流等技术手段来提升系统的可扩展性和稳定性。

同时,也可以引入缓存技术来减轻数据库等核心组件的负载,缩短响应时间,提高并发处理能力。

2 代码Bug

软件Bug是导致系统崩溃的常见原因之一。这些Bug可能包括代码中的逻辑错误、未处理的异常情况、内存泄漏等。

3 安全问题

针对第三方应用程序和脚本的问题,12306可以通过加强系统的安全性和防护措施来防止未经授权的访问和恶意攻击。例如增加验证码、IP限制、封禁脚本等手段,维护购票秩序和公平性。

4 网络问题

12306系统依赖互联网来处理用户的请求和数据传输,在购票高峰期,由于网络流量过大,网络拥堵可能导致用户无法正常访问系统或者系统无法正常处理用户请求,从而引发系统崩溃。

可采用:负载均衡、WAN优化和SD-WAN、虚拟端口通道(vPC)或叶脊架构等方法解决网络拥堵拥塞问题。

12306系统崩溃原因找到了,可是我们测试工程师怎样才能在软件测试阶段将问题暴漏出来,而不是待系统上线并发生崩溃后“事后诸葛亮”式的去排除问题、分析问题?

小编认为:对于12306系统崩溃的问题,性能测试过程中一般的测试场景很难将问题暴漏,需要模拟系统特殊场景(第三方应用程序或脚本)。

即根据真实场景,在负载测试、压力测试和稳定性测试过程中,模拟第三方应用程序、自动化脚本和虚拟用户同时并发的场景。

启示

这次事件提醒我们:在互联网时代,用户对于软件的要求越来越高,对软件的操作方式越来越多,我们软件测试工程师的角色至关重要,我们不仅需要持续学习和跟踪新的测试方法和工具,还需要深入了解用户实际的操作场景。

只有这样,性能测试时,才能模拟到用户的真实场景(第三方应用程序或脚本),性能场景模拟越真实,性能测试的效果越明显。

也只有通过这样的不懈的努力和严格的测试,我们才能构建更加稳定和可靠的软件,为用户提供更好的体验。

以上是小编的个人见解共大家参考,如果有不同思路可共同探讨。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值