• 性能测试流程


    一、获取测试需求

    1、系统结构分析

      系统架构图、网络拓扑图等(单体、集群、分布式、微服务、缓存、网关),主要目的是了解系统的数据流。

    2、业务模型分析

      什么场景下可能存在什么问题。常见的业务有审批、支付、订单、库存、查询、数据更新、文件上传下载等。其中支付业务关注强业务性和强数据一致性,数据更新关注数据库的锁、资源独占等,文件的上传下载需要关注网络带宽、线程休眠、文件转换等。

    3、测试需求分析

      什么人(用户)在哪个时间段(峰值流量)什么场景(业务场景)下执行了什么操作(接口处理,涉及的服务等),业务建模。

    a)测试边界

      哪些不测哪些测,梳理清楚涉及到的业务场景和对应接口。

    b)测试目的

      能力验证、容量规划、发现缺陷、基准比较。详看性能测试应用领域

    c)测试指标

      一般由业务方提供。如果需求不明确,需要沟通确认测试指标(TPS、RT、系统性能计数器等)。

    二、测试计划

      类似于功能测试

    三、测试方案设计

      确定起止时间,测试环境配置,人员等,与测试计划具有重复,可合并。

    四、测试环境搭建

      搭建一个独立的环境,或者使用SIT/UAT/正式环境。注意被测系统的稳定性、是否有交叉影响、和生产环境的一致性等

    五、测试用例设计

      类似于功能测试

    六、测试数据准备

    1、数据类型:基础数据(本来就应该存在的系统内数据)、测试数据

    2、准备方法:从生产上拉一份、通过脚本(JDBC)预埋数据

    3、注意事项:数据隔离,数据清理,数据污染,可用“挡板”。

    七、测试脚本编写

      最好做到可复用、简洁、可移植。脚本的编写涉及接口的相关信息(请求方式、方法、报文、通信协议、同步/异步等),还有框架的信息(dubbo、MQ、kafka、Spring Boot等)

    八、测试脚本执行

    1)执行过程中的数据收集

      系统自带的计数器,第三方工具等。

    2)监控调试

      使用工具监控各方面的资源消耗,例虚拟机可用nmon、docker类可用Prometheus、数据库可用zabbix等。

    九、瓶颈分析定位

      待续

    十、测试结果反馈

    十一、测试报告

    -----------------------------------------------------------------------分割线----------------------------------------------------------------------------

      整个性能测试过程中主要重点在需求分析阶段,根据测试目的确定了使用什么测试方法,业务场景、性能指标都确定了,接下来就是按部就班的走下去就行了,找到瓶颈之后进行调优,然后在进行测试,如此反复,直到达到预期的测试结果从而结束测试。调优这里大概是性能测试最有技术含量的点了,需要大量的业务知识和技术积累。

  • 相关阅读:
    221. Add Two Numbers II【medium】
    167. Add Two Numbers【easy】
    544. Top k Largest Numbers【medium】
    413. Reverse Integer【easy】
    219. Insert Node in Sorted Linked List【Naive】
    java发展史与java的语言特性
    MySQL级联删除的问题
    mac上创建MySQL的基本步骤
    MySQL中的约束简单使用
    MySQL的中文编码问题
  • 原文地址:https://www.cnblogs.com/zichuan/p/10234384.html
Copyright © 2020-2023  润新知