首页 > 其他分享 >8年经验之谈!分享一次性能测试过程,5个步骤直接起飞!

8年经验之谈!分享一次性能测试过程,5个步骤直接起飞!

时间:2023-11-24 16:02:00浏览次数:32  
标签:负载 结果 步骤 性能 系统 经验之谈 测试 起飞 使用率

在企业中完成性能测试项目是一个挑战性强、技术含量高的任务。本文将分享一个公司完成高性能游戏系统的性能测试过程,展示如何完成一次成功的性能测试项目

项目背景:这是一家游戏公司,推出了一款新的游戏软件,系统要求高性能、高并发、高可用,为确保用户体验和游戏体验,公司决定在正式上线前对系统进行性能测试.

第一步:

定义测试目标

在项目启动之初,团队首先进入到定义测试目标的阶段,据此来确定测试范围、测试手段和测试工具。此阶段重要性不言而喻,目标不明,则结果无从说起。

通过团队讨论,确立了以下的目标:

  • 针对目标场景下的指标进行基准测试,并得到高可用性的性能数据。
  • 评测流量下的异常场景,确定系统多少负载能力及扩展架构。
  • 通过性能测试结果来查找和定位系统的瓶颈,并通过在代码层面进行优化提升系统吞吐量及性能表现。
  • 揭示用户最有可能使用系统的行径模式及环境和业务决策。

第二步:

测试计划调研

按照测试目标,测试团队进行测试计划调研。我们将基于应用程序不断压测及观察应用程序的运行状况来判定应用程序的瓶颈,并且对观察结果进行分析和总结,为分析改善提供有力数据支撑。

针对要测的业务模式,我们设计出了4个具有典型意义的场景:

  • 500-10000个并发用户请求。
  • 负载测试,根据实际场景数据模拟用户操作习惯,
  • 容量测试,以应用程序在各个方面的性能和资源限制,并确定系统配置的最大极限。
  • 24小时稳定性测试,保证系统在持续24小时真实环境下的高可用性。

第三步:

执行测试计划

通过测试计划调研,我们进行了测试项目将近1个月的时间安排到执行。我们使用了多种工具,应用于不同测试领域,例如LoadRunner、JMeter、Appdynamics、Keynote、Fiddler、Wireshark、Flume等等。在这里不展开程序设计中复杂的使用。

下面是使用JMeter测试的例子,它是一款开源的压力测试工具。它可以对不同种类的服务器、网络协议进行测试。

下面是相关的测试结果:

基准测试:

将系统在低负载环境下按照预定的标准进行性能测试,例如单用户响应时间,服务器负载以及数据库处理能力都是很好的评估指标。测试结果如下所示:

测试指标 结果
每秒事务处理能力 7500
平均响应时间 0.3秒
CPU使用率 70%
内存使用率 60%

 

负载测试:

使用模拟混合负载的测试,在同一时刻模拟大量高并发用户同时访问系统,测试结果如下所示:

测试指标 结果
每秒事务处理能力 13800
平均响应时间 2秒
最大响应时间 5秒
CPU使用率 85%
内存使用率 80%

 

容量测试:

容量测试中使用jMeter模拟出可实现的并发用户访问系统,测试结果如下所示:

测试指标 结果
每秒事务处理能力 28000
平均响应时间 7秒
最大响应时间 15秒
CPU使用率 99%
内存使用率 95%

 

稳定性测试:

保证系统在持续24小时真实环境下的高可用性,测试结果如下所示:

测试指标 结果
24小时无故障时间
CPU使用率 85%
内存使用率 92%

 

第四步:

测试结果及异常分析

通过以上测试,团队分析性能数据,据此针对性进行优化, 例如通过清理CPU 日志数据库存储调优等方式进行优化,以提高系统稳定性,优化结果如下所示:

测试指标 优化前 优化后
每秒事务处理能力 28000 45000
平均响应时间 6秒 0.2秒
最大响应时间 13秒 1秒
CPU使用率 99% 70%
内存使用率 97% 80%

根据性能测试结果,我们发现系统在负载和容量测试场景下呈现出问题

负载测试:

我们注意到在高负荷下,响应时间开始大幅上升并且响应时间的标准差开始下降。这表明系统正在达到其极限,并可能无法容忍更多的用户。

容量测试:

当我们在大负载下执行测试时,发现系统性能发生了很大的下降。我们发现jMeter本身不能支持如此大量的并发用户访问,我们使用了不同的工具来验证测试结果,我们发现系统极限在28000并发访问量左右。该结果使我们意识到系统还需要在某些方面进一步优化。

第五步:

得出结论——性能测试报告

通过各种性能测试方式,团队得出了一个详细的测试报告。该报告概括了测试结果及其优化方案,并包括了性能测试的详细数据、结论和建议,以便游戏开发团队根据测试结果决定是否更改系统架构、代码或参数。最终,该游戏系统在经过不断测试和改进后成功上线,并获得了良好的用户体验。

总结:

该高性能游戏系统性能测试案例中,测试团队首先制定了测试目标,确定测试计划,然后采用不同的测试工具进行测试,为改进系统性能提供了数据支持,并得出了详细的测试报告。测试结果中的异常分析让工程团队能够针对具体的问题进行精细的优化。这一成功性能测试的案例展示出一个优秀公司如何在高压力的环境下验证性能、保证高可用性和安全性,实现巨大价值的过程。

最后如果你想学习软件测试和需要软件测试资料,欢迎加入笔者的交流群:320231853,里面可以免费领取软件测试+自动化测试资料+软件测试面试宝典+简历模版+实战项目+面试刷题工具和大佬答疑解惑,我们一起交流一起学习!

标签:负载,结果,步骤,性能,系统,经验之谈,测试,起飞,使用率
From: https://www.cnblogs.com/NHB6870/p/17853964.html

相关文章

  • 接口自动化测试要做什么?只需要会这8个步骤...
    作者的标题,是问做接口自动化测试的流程吗?如果是,那先了解下接口测试流程:1、需求分析2、Api文档分析与评审3、测试计划编写4、用例设计与评审5、环境搭建(工具)6、执行用例7、缺陷管理8、测试报告了解了接口测试的工作流程,那"接口自动化测试"怎么弄?只需要在上篇文章的基础上再梳理下......
  • keycloak~登录步骤页login-actions/authenticate出现无限次302跳转的原因与解决
    问题出现的前提keycloak通过k8s部署,并进行了集群部署,共2个节点通过域名解析后,直接到外网LB,在LB上配置了k8s-ingress的IP,端口是80和443在keycloak应用的ingress配置中,对域名进行了keycloak服务的绑定问题的描述有时间无法完成登录,点登录后,刷新了一次登录页,未完成登录行为......
  • Cocos Creator 3.x 如何加载远程图片的详细步骤
    CocosCreator3.x是一款基于JavaScript语言开发的游戏开发引擎,支持跨平台开发,可以在Web、iOS、Android等平台上运行。在游戏开发中,经常需要加载远程图片,比如玩家头像、游戏道具等等。本文将详细介绍CocosCreator3.x如何加载远程图片,并给出代码实现。对啦!这里有个游戏开发交流......
  • 微服务 Gateway 网关的创建步骤
     网关本身也是微服务,也需要把自己注册到Nacos或从Nacos中拉取服务 一个服务要想启动,得需要main函数,所以弄一个application:   这些配置是让网关能够联系上Nacos,实现网关服务的注册,以及服务发现 然后是路由配置:  server:port:10010spring:applicat......
  • Centos7 安装MySQL详细步骤
    1.1MySQL安装1.1.1下载wget命令yum-yinstallwget1.1.2在线下载mysql安装包wgethttps://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm1.1.3安装MySQLrpm-ivhmysql57-community-release-el7-8.noarch.rpm1.1.4安装mysql服务首先进入cd/et......
  • 关于视频点播平台EasyDarwin视频直播平台如何上传点播视频的具体操作步骤
    EasyDarwin互联网视频云服务通过其高效的视频管理功能和广泛适用性,为用户提供稳定、流畅的视频服务,广泛应用于各种互联网场景。应用场景包括电视直播、现场直播、时移电视、即刻回看和视频点播功能,适用于OTTTV、IPTV、互联网教育、视频聊天、现场直播和VOD等各种场景应用。E......
  • 在Linux环境安装redis步骤,且设置开机自动启动redis
    原创/朱季谦最近一直在学习redis相关知识,看了很多理论知识后,觉得还是要多动手操作,就如王阳明说的知行合一那样,因此,便决定在linux环境安装了redis,过程捣鼓了一番,也遇到了一些波折,但最后还是成功安装完成,顺便把步骤流程记录了下来,分享给有需要的小伙伴。1.首先,我在linux的/usr/local/......
  • electron打包步骤
    #npm清理缓存npmcacheclean--force#创建文件夹mkdirxxx&&cdxxx#初始化(entrypoint应为main.js,author必填,description必填)npminit#安装electron包npminstall--save-develectron#安装electron包报错的话1:npmconfigedit2:将下面三行加进去regis......
  • 部署NFS、Samba、iscsi这三种网络存储步骤与使用
    第一个:Samba服务端部署参考:(https://zhuanlan.zhihu.com/p/475405233)systemctlstartsmb//启动samba服务/etc/samba/smb.conf//samba配置文件登陆方式:在我的电脑输入\\服务器主机名有两种方式:认证与不认证认证客户端通过输入服务端用户和密码认证后,访问samba服务的......
  • vmware安装步骤
    一.vmware安装步骤打开安装包添加许可证:三个任选一个UG5J2-0ME12-M89WY-NPWXX-WQH88GA590-86Y05-4806Y-X4PEE-ZV8E0YA18K-0WY8P-H85DY-L4NZG-X7RAD二.新建虚拟机点击关闭,完成......