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

大部分公司在最初试的阶段只会关心项目的基本功能,能用就可以。但是随着项目的成熟,用户量逐步的增大,线上经常就会出现一些系统崩溃,用户反映系统太慢等性能问题的爆发。所以,性能测试的需求就逐步变得迫切了。所以,基本上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、如果公司需要升级硬件或者服务,我们需要对其进行性能测试,对比升级前后是否有性能提升或者降低;如果硬件升级后,没有提升,就不用升级硬件了;

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

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

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

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

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

  • 核心的功能

  • 用户使用量做多的

  • 赚钱的模块

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

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

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

总结

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

 

 感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

  • 29
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值