当前位置: 首页 > news >正文

一篇文章带你搞定企业级完整性能测试流程!

大部分公司在最初试的阶段只会关心项目的基本功能,能用就可以。但是随着项目的成熟,用户量逐步的增大,线上经常就会出现一些系统崩溃,用户反映系统太慢等性能问题的爆发。所以,性能测试的需求就逐步变得迫切了。所以,基本上90%的公司,都会只重视功能测试同时,也把项目的性能测试列为重点关注对象,这就导致测试市场上【性能测试工程师】的岗位需求越来越多了。

什么是性能测试

要做性能测试,我们需要先弄清楚什么是性能测试,以及性能测试和通常的功能测试有什么差异?

首先,众所周知,功能测试是模拟一个人使用某个系统的某个功能,测试使用后的实际结果与预期结果是否一致;

性能测试与之最大的差别就就是,模拟N多个人同时使用某个功能,观察以下数据指标:

多久时间能收到结果,也就是我们常说的性能指标,RT【响应时间】

多少人能正常收到结果,也就是性能测试指标 最大并发用户数。

服务器在多人同时使用时资源消耗多少

所以,在执行和关注结果层面,性能和功能测试都有本质上的区别。

企业性能测试流程

在公司做性能测试流程跟功能测试流程也有一定差异,如下图所示:

第一步:性能测试准备

1.1 测试指定标准

功能迭代完成了,预发布完成后,功能稳定了,这是性能的准入原则;

而且是否有必要做性能测试需要进行评估。比如有些伪需求,简单的逻辑不会影响性能,不需要做性能测试;非核心模块做性能测试,投入产出比也比较低,也没有必要做。

1.2 性能需求分析、量化性能指标

产品的功能点很多。做哪些功能的性能测试?边界、范围要明确。讨论到底具体做哪些功能。

出性能报告的时候,性能标准是什么也要先明确,如果没有给出特殊指标值,就以行业标准来定。

行业内标准:【ART<1.5s,ERR<0.1%,服务器资源利用率<80%】

第二步:性能测试环境搭建

明确了需求后,开始搭建独立性能测试环境,性能测试环境要求:

独立网络(有线、局域网)

独立服务器 (硬件配置要与生成一致、服务部署架构要与生成一致,集群大小,可以缩减

并且要同步搭建性能测试结果监控平台:比如 prometheus,grafana,influxdb ,现在市面上很多监控都是基于prometheus+grafana的二次开发页面展示不一样的。为了方便直接对测试结果进行监控分析,我们可以提前搭建好这些监控平台。

第三步:性能测试脚本开发和执行:脚本制作,调试和验证脚本

性能测试脚本开发和执行需要借助工具来实现,性能测试工具目前市场主流的有:

Jmeter 开源免费,学习资料比较多,java开发,跨平台【win mac Linux都可以用】,推荐优先使用。

Loadrunner,需要收费,市场份额相对较少;C语言开发,破解版本<11版本,12版本免费只能使用50用户数,更新很慢。破解版使用有风险。

locust 需要代码基础,用的也比较少;公司自研使用。Python语言自行开发。

我们以最主流的Jmeter工具给大家讲解性能场景设计与执行,常见的测试模型有:

1)基于并发数模型:线程数梯度增加,压出系统能承受的最大并发用户是

2)基于TPS压测模型:目标一般是为了压出系统最大的TPS,所以会采取平缓增加TPS的模式。

这里的RPS可以等同于TPS,以下图就是5分钟内TPS从1-20,下个5分钟20-50,下个5分钟50-100,最后加到300后,持续600s,如此设计平缓递增。

第五步:性能测试结果分析和调优

性能测试最重要的部分其实就是结果分析和调优。在性能测试过程中对各种数据进行监控与收集,包括被测项目的监控(服务 + 服务器),硬件资源监控+项目服务监控等。通过对测试结果与监控数据综合分析,进行问题定位、分析、调优。

问题分析和调优的基本步骤主要可以按照如下顺序进行:

1、由外及内: 检查RT>检查tps>检查负载机资源情况>检查服务器资源情况>检查 中间件、数据库配置>中间件、数据库耗时分析

2、由表及里:自身问题>服务器硬件瓶颈 > 网络瓶颈 > 服务器os瓶颈> 应用瓶颈

自身问题:优先找自己的问题,因为可能脚本,客户端端口不够、网络不好等问题。

服务器硬件瓶颈:CPU 内存 磁盘等

服务器os瓶颈:参数配置、数据库、web服务器

应用瓶颈:sql语句、数据库设计、业务逻辑、算法

调优后再验证测试,检查问题是否已经解决。

性能测试通过标准& 验收标准:

第六步:性能问题跟踪与报告

当以上的步骤都做完后,就可以开始整理编写性能测试报告。

性能测试报告要素:

1、背景 :为什么要做压测的目的。

2、压测内容:方案里有体现,范围和场景和环境 脚本 架构图等。

3、压测结果(截图):指标项的记录,TPS,资源使用情况等,截图附上作为证 据,也更加直观和后续对比分析。

4、问题和调优:通过什么现象发现是个问题,然后调优的方法;包括已解决,待解 决的问题;如果没有办法避免,写到结论里。

5、压测结论&建议 :简洁明了,接口的最大并发用户数 响应时间 资源利用率等作 为一个图标展示,明确的结论:是否达标。

然后进行性能测试问题跟踪

记录需要跟踪的性能问题:问题可能不是一时半会能修复的,也需要问题跟踪。

性能测试的意义和价值

性能测试对于项目和企业有这重要的意义和价值。我们可以从以下场景来阐述:

1、如果公司需要升级硬件或者服务,我们需要对其进行性能测试,对比升级前后是否有性能提升或者降低;如果硬件升级后,没有提升,就不用升级硬件了;

这就可以大大的减少硬件上投入,为公司缩减没有必要的成本。

性能测试的环境 一般期望硬件配置与生产环境保持一致,但是数量不要求相等。

这样评估可以更加合理的安排生产环境的设备配置。

3、日常工作的性能测试,及早的发现一些性能隐患。比如挑选一些性价比最高的模块来做性能测试,可以高效帮助公司避免一些用户流失和经济损失。以下是常见的需要做性能测试领域:

核心的功能

用户使用量做多的

赚钱的模块

有活动的,突发的并发用户,指导突发流量承载方案的指定。

4、及时发现和避免用户越权事故。

功能测试中多次点击会出现重复数据,在性能测试里就是多个用户并发的时候发现重复数据,数据互串,很有效的发现用户越权的安全问题。

总结

综上所述,性能测试对于企业来说必不可少且意义重大。然后现在人才市场上真正掌握性能测试人却少之又少,很多企业都无法真正找到全面的性能测试人才,所以这块也是一个技能缺口,目前在做测试岗位的同学们,可以往性能测试方向发展和提升,从而确保自己的测试地位。

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

http://www.cnnetsun.cn/news/753376.html

相关文章:

  • Redis 分布式锁:从原理到 Spring Boot 实战,避开 90% 开发者踩的坑!
  • C++课后习题训练记录Day74
  • C++课后习题训练记录Day75
  • 科研必备:六大学术引用平台+AI智能排版推荐
  • 猎头视角:不同阶段候选人的关注点差异与猎头价值
  • 导师推荐!10个AI论文网站测评,研究生科研写作必备
  • 学术文献引用工具排名:六款主流平台及智能规范建议
  • 每日面试题分享152:什么是循环依赖?
  • 60N04NF-ASEMI中低压MOS标杆60N04NF
  • 科研发表加速器:paperzz 期刊论文智能写作工具,让投稿不再卡壳
  • 小迪安全2023-2024|第102天:漏洞发现-漏扫项目篇Poc开发Yaml语法插件一键生成匹配结_笔记|web安全|渗透测试|
  • EasyGBS打造智慧机场一体化智能监管体系
  • 从Java基础到微服务架构:互联网大厂面试三轮问答实录
  • java_ssm111羊毛毡手工艺品交流与分享系统的设计与实现_idea项目源码
  • java_ssm115计算机系统在线考试平台_idea项目源码
  • java_ssm119运列车物资定额及领用管理系统_idea项目源码
  • 导师严选2026 AI论文网站TOP8:专科生毕业论文必备测评
  • 终极清单:量子计算开发者的必备认证TOP5
  • java_ssm1 高校学生班费管理系统
  • java_ssm4在线教育系统的设计与开发
  • java_ssm6专门体检预约管理系统_idea项目源码
  • PCI0设备扩展下的实际建立的子设备扩展共9+4*8=41个--重要中间结果--说明这41个设备存在
  • 【开题答辩全过程】以 基于BS结构的旅游网站的设计与实现为例,包含答辩的问题和答案
  • 耐达讯自动化Profibus光纤链路模块:跨行业通信的“隐形桥梁”,让控制更丝滑!
  • 分布式架构:Dubbo 协议如何做接口测试
  • 【Pytest】结构介绍
  • 《使命召唤20》启动报错缺失 msvcp140.dll 怎么办?2026最新修复评测,哪款工具能一键挽救游戏体验?
  • 基于Python的社区设备报修住户反馈智能预测系统设计 计算机毕业设计选题 计算机毕设项目 前后端分离【源码-文档报告-代码讲解】
  • 免费文献检索网站推荐:高效获取学术资源的实用平台指南
  • ACPI!PciConfigSpaceHandlerWorker函数中的ACPI!GetOpRegionScope最终调用了ACPI!IsPciDevice