• 性能测试的概念到底是什么?---《跟着高楼学习性能测试--进阶高级性能工程师》系列


    本文为在霍格沃兹测试开发学社中学习到的一些技术,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~


    一、性能测试的定义

    性能测试针对系统的性能指标,建立性能测试模型,制定性能测试方案,制定监控策略,在场景条件之下执行性能场景,分析判断性能瓶颈并调优,最终得出性能结果来评估系统的性能指标是否满足既定值。

    二、性能工程的流程

    把性能工作当作一个工程来做,而不是当作一个测试环节来做。
    在这里插入图片描述

    2.1、性能需求指标

    性能指标,包含两个,一个是业务指标,一个是技术指标;
    业务指标:比如1000万在线用户
    技术指标:时间指标、容量指标、资源利用率指标

    2.1、性能模型

    在这里插入图片描述

    2.2、性能环境

    硬件环境、软件环境
    系统架构、铺底数据

    2.3、 性能场景

    性能场景分为以下四类,且就有以下四类;(高楼老师说他就是这么的固执,哈哈哈)
    四类性能场景

    序号场景备注目的
    1基准场景单交易的容量 ;拿到单交易的上限制;比如压测商城下单直到系统崩溃1、获得单接口最大TPS;2、解决单接口中遇到的性能问题;
    2容量场景对应的真实生产环境的场景;比如验证1千万用户的在线系统能不能撑的住达到系统的最佳运行状态
    3稳定性场景系统长时间运行能够撑的住;第一个变量:业务累计量(1年1个亿的订单)。 第二个变量:
    4异常场景运维中异常的处理

    说完了性能场景的分类,那么性能场景包含哪些内容呢?

    序号大类小类
    1性能脚本
    2参数化数据
    3监控策略全局监控
    定向监控
    4执行控制场景执行顺序
    实时数据分析
    5场景调整压力线程
    递增策略
    递减策略
    持续时间
    6软硬件环境
    7基础数据/铺底数据
    8挡板/MOCK/第三方

    2.4、性能分析

    现在的性能测试工程师,最缺的就是分析思路。有很多人会使用各种各样的工具,但是要把这些分析工具的数据拿出来应该如何组装成一串逻辑,确实是最难的地方。
    在课程中,高楼老师提供了性能分析七步法

    序号步骤备注
    1压力场景数据分析jemter/loadrunner等工具 收集的性能趋势图;看数据的趋势,而不是看点的数据
    2架构分析项目采用什么样的技术架构,每一个接口走的什么样的路径
    3响应时间拆分需要找的慢的具体位置
    4全局监控分析性能分析决策树
    5定向监控分析性能瓶颈证据链
    6判断性能瓶颈
    7提出解决方案执行方案对比结果

    2.5、性能报告

    性能测试报告、性能调优报告

    三、性能数据案例分析

    看性能数据,需要做出两个判断,否则就不是一个合格的测试工程师,一个是有没有瓶颈,另一个是下一步做什么。
    案例1:
    在这里插入图片描述

    • 描述:压力不变,曲线基本上趋于稳定,但是有3个高点,看起来也挺有规律的
    • 是否瓶颈:有瓶颈
    • 下一步做什么:3个高点,说明这些地方和其他曲线上的响应结果是不一样的,进行响应时间的拆分,看为何不同,区别在哪里。
      案例2:
      在这里插入图片描述
    • 曲线抖动很厉害,比较混乱,看不到规律/趋势。所以没有分析的必要性;分析的前提是要确定数据具有可分析性
    • 下一步操作:降压力(哪怕是一个用户),让曲线平稳一些,能够看到趋势

    案例3:
    在这里插入图片描述

    • 虽然有抖动,但是有规律,数据具有分析性(抖动就是它的趋势)。有瓶颈,抖动过大,需要找到抖动过大的原因。
    • 下一步拆分最高点和最低点的两个相应时间找区别,找出时间到底差在了哪里

    案例4:
    在这里插入图片描述
    曲线很稳定,也有规律,是不是没有问题呢? 不是
    没有模拟真实的线上生产环境的业务场景,真实的场景应该是逐步的加压,而不是一下子增加很大的压力。

    案例5:
    在这里插入图片描述
    短时间内,响应时间基本上不变,但是随着时间的增加,响应时间确实再不断的增加。这就是需要进行长时间的稳定性场景压测的好案例,短时间内发现不了这个瓶颈。下一步诊断还是拆响应时间。


    文末说明
    推荐博文:接口测试经典面试题:Session、cookie、token有什么区别?

  • 相关阅读:
    基于.NET6、FreeSql、若依UI、LayUI、Bootstrap构建插件式的CMS
    leetcode98验证二叉搜索树-递归法解-反正就是中序遍历的变式-日记篇
    盒子模型详解
    Linux-软件安装/项目部署
    计算机网络-网络,互联网
    HCIA网络课程第三周作业
    计算机竞赛 基于深度学习的植物识别算法 - cnn opencv python
    51单片机学习:LED点阵实验(显示数字)
    奇妙的跨域错误-Access-Control-Request-Private-Network
    深入理解Huffman编码:原理、代码示例与应用
  • 原文地址:https://blog.csdn.net/qq_15283475/article/details/127417549