• 0
  • 0
分享
  • 彻底掌握编写性能测试计划,看这篇就够了——软件测试圈
  • 恬恬圈 2023-04-03 15:29:55 字数 2317 阅读 902 收藏 0

  我们讲过性能测试计划,接下来我们就来讲讲如何设计符合项目的性能测试计划。

  到上篇为止,我们了解了性能测试计划中包含的内容,但是,这个颗粒度,我觉得作为一名测试经验不够丰富的性能工程师来说,还是有些迷茫,只知道理论还不够,如何把性能测试计划落地,才是我们这次的目标。

  所以,接下来,我会结合实际的项目案例,来落地性能测试计划。当然,针对一看就懂的内容,我就不过多唠叨,毕竟,大部分人的想法都是:时间很珍贵,干货要满满。

  设计符合项目的性能测试计划

  背景

  根据你的实际项目来描述即可, 此处省略……

  性能目标

  根据商品在系统中的下发主流程,来测试系统的单接口最大容量;

  根据业务比例设计容量场景,充分利用当前资源,找到当前系统的性能瓶颈,并优化,以达到系统的最佳运行状态;

  根据稳定性场景,判断当前系统可支持的系统最大累加容量;

  根据异常场景,判断当前系统中的异常对性能产生的影响。

  压测范围

  计算接口;

  同步接口;

1-1.png

  在这里,强调一下:需要测试的接口,是业务主流程的主要接口,并不是所有的接口都需要测试。

  我在面试过程中,问求职者这个问题, 大部分都会说所有的接口都会测试一遍,这没必要。

  启停准则

  启动准则:环境准备完毕,架构服务部署完毕,测试计划、测试方案评审完毕、所有功能测试完毕、所有相关人员(PM、架构师、开发工程师、性能测试工程师、运维)已到位;

  结束准则:达到项目需求的性能指标,性能瓶颈已解决,测试报告和调优报告都已完成;

  暂停准则:系统环境出现问题导致无法继续测试,比如网络不同、压力机损坏、服务宕机等;

  在启动准则:上述问题都已解决,可以继续进行测试。

  性能指标

  这里的TPS,可以通过运维提供的数据,进行预估。

  根据多年的测试经验,这里的TPS标准方差不会超过5%,如果超过,那……能为你"点赞"。

1-2.png

  系统架构图

  系统逻辑架构图 和系统部署架构图,你可以与设计沟通或者运维沟通,都可以得到。得到这两个图,需要你去梳理架构逻辑,为你进行性能瓶颈分析做准备。

  压测前准备

  主要是硬件服务的配置信息,这里的资源配置,在评审阶段就可以得到。

1-3.png

  工具准备

  压测工具:Jmeter+InfluxDB。

1-4.png

  监控工具:Promethues、Grafana、Kafka、Logstash、Spring Boot Admin等。

1-5.png

  数据准备

  测试脚本数据的准备,由于我的项目需要读取文件的方式往数据库里面写数据,所以,txt文件里面的数据,我也是写脚本自动生成的。

1-6.png

  性能设计

  ①性能测试策略,一定是要满足:连续、递增的策略。

  如果你的性能测试策略不满足这两点,那我可以断定,你的性能测试最后的结果,一定不是准确地,或者说一定不会符合实际的生产环境的业务场景。

  ②业务场景,一定要满足 基准场景、容量场景、稳定性场景 和异常场景,否则,最后的结果,一定是跟上面说的一样。

  监控设计

  ①全局监控设计:一定是从整体出发,监控全局系统;如何快速定位问题, 取决于你的全局监控部署的是否完整。

  ②定向监控设计:对具体的应用、数据库等进行监控分析,如 jstack、mysqlreport等。

  全局监控发现问题, 定向监控分析问题,这就是监控布局的整体意义所在,定向监控是分析问题最快最直接最便捷的。

  如果你没有定向监控,即使你的经验在丰富, 分析性能瓶颈也不是最快最准确的。

  项目组织架构

  把你的项目组织架构图画出来, 这样便于发现问题后知道第一时间找谁去处理。

  例如:

  PM:项目负责人;

  架构师:项目架构负责人;

  开发工程师:参与项目编发人员,解决性能问题;

  性能工程师:负责编写性能测试脚本 和负责分析性能瓶颈 , 这两个职位可以是同一个人;

  运维:部署服务,环境构建。

1-7.png

  成果输出

  性能测试报告、性能调优报告、性能测试脚本、性能缺陷列表,在大部分性能测试工程师认为,成果输出中,并不包含性能调优报告,我也调查过很多人,最后我得到的结果,让我很吃惊:

  不知道性能成果还 性能调优报告;

  性能调优报告是什么;

  过程性内容,没必要提供;

  性能调优是开发参与,我一个性能测试工程师,何必管那么多。

  看到这里, 你是不是也很吃惊, 或者刷新了"三观认知"。所以,避免你说出同样的话,建议你在成果输出中包含 性能调优报告。

  项目风险分析

  关于项目分析分析, 你可能会说,项目风险是测试报告中体现的, 为何要在 性能测试计划中体现?

  其实不然, 项目风险分析,是你性能测试开始前期进行分析和评估的。

  例如:

  你的测试环境无法满足与生产环境一样的配置;

  你的业务模型可能因为某些原因,导致与生产环境某一节点不相符;

  由于涉及多团队协作,可能在性能测试过程中,某些人员无法准确到位……

  总结

  看到这里,你是不是已经对如何编写性能测试计划有了重新的认识?我用了大篇幅的内容,从性能测试计划包含哪些内容,到如何落地性能测试计划,就是为了让你在性能测试更专业。

  一份详细的性能测试计划,是整个性能测试工程的关键所在。而在这份性能测试计划中, 更核心的内容,就是:性能指标,系统架构图、性能场景、监控设计。

  所以, 在整个性能测试计划中,你需要把更多的精力,放在更核心的内容上。只有编写详细的性能测试计划, 设定明确的性能指标, 理解系统架构图,设计完整的性能测试场景,部署完整的监控,你的性能测试才算完整。



作者:Carl_奕然    

来源:http://www.51testing.com/html/73/n-7794973.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   51Testing软件测试网正在收集测试行业问卷结果,如果你也想为测试行业的前景助力,就点击下方的链接提交答案吧,还有精美礼品等你拿(测试课程五选二)。链接:http://vote.51testing.com/  传统企业转型产业互联网的路上,充满了艰难险阻。有很多传统企业好不容易设计出了平台业务模式、筛选出了合适的系统供应商,并进入了平台系统建设阶段,就觉得马上大功告成了,没想到却栽在了系统验收这最后一步。  系统能否上线,功能的实现是最基本的要求,此外还应该优化系统的美观性和易用性,当然这是对于系统更高的要求。然而很多系统的基本功能还无法顺畅地操作,这是因为在系统验收之前的环节没有把控...
            0 0 862
            分享
          •   等价类划分法  等价类划分法即把所有可能输入的数据划分为若干个区域,然后从每个区域中取少数有代表性的数据进行测试。等价的意思就是说程序对它们的处理方式都是一样的。  有效等价类  有效:是因为它们都是符合需求文档中定义的数据;  等价:是因为它们都是同一类型的数据。  无效等价类  无效:是因为它们都是不符合需求文档中定义的数据;  等价:是因为它们都是同一类型的数据。  等价类划分(测试点):  等价类划分法设计测试用例  边界值分析法  在功能测试中,边界值分析法也是测试人员常用的一个方法,它通常被视为对等价类划分法的一种补充。边界值分析法是取稍高于或稍低于边界的一些数据进行测试。为什...
            0 0 1112
            分享
          • 导读在自动化测试实践中,测试数据是制造测试场景的必要条件,本文主要讲述了在沟通自动化框架如何分层,数据如何存储,以及基于单元测试 pytest 下如何执行。并通过实践案例分享,提供数据驱动测试的具体落地方案。基本概念数据驱动测试(DDT)是一种方法,其中在数据源的帮助下重复执行相同顺序的测试步骤,以便在验证步骤进行时驱动那些步骤的输入值和 / 或期望值。在数据驱动测试的情况下,环境设置和控制不是硬编码的。换句话说,数据驱动的测试是在框架中构建要与所有相关数据集一起执行的测试脚本,该脚本利用了可重用的测试逻辑。数据驱动的测试提供了可重复性,将测试逻辑与测试数据分离以及减少测试用例数量等优势。设计...
            0 0 884
            分享
          • 使用python3.6编写一个单元测试demo,例如:对学生Student类编写一个简单的单元测试。1、编写Student类:#!/usr/bin/env python3 # -*- coding: utf-8 -*-   class Student(object):   def __init__(self,name,score): self.name = name self.score = score def get_grade(self): if&nb...
            0 0 1432
            分享
          •   如果问软件测试有哪些前景,准确的说,应该是软件测试工程师的职业规划是什么样的。关于一些职业规划上的意见建议,我从下面几个方面梳理一下,供您参考。  1、软件测试行业的现状  2、目前业内人员的现状  3、软件测试工程师的职业规划  4、软件测试工程师的核心竞争力在哪  5、软件测试工程师如何不断提高自己的能力  大厂更加倾向于招收测试开发,更多的初级测试被外包吸收,只会手工测试的人员生存更加艰难。  在经历了18年的裁员潮之后,很多大厂及创业公司都在调整和优化自己的团队结构,特别是对于大厂来说,并不是简单地裁人,而是裁掉单一的手工测试,转而付出更高的薪酬来招收技术更好的测试开发人员。在这个...
            14 14 2223
            分享
      • 51testing软件测试圈微信