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

前言

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

什么是性能测试

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

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

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

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

Image.png

企业性能测试流程

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

Image.png

第一步:性能测试准备:

1.1 测试指定标准

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

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

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

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

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

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

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

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

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

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

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

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

Image.png

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

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

Image.png

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

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

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

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

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

Image.png

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

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

性能测试报告要素:

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

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

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

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

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

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

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

性能测试的意义和价值

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

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

2、根据性能测试的数据,预估生产环境,方便配备硬件配置、服务的数量。

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

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

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

总结

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

回帖
请输入回帖内容 ...