在性能测试过程中,性能测试场景如何设计?

在性能测试过程中,在测试数据、测试脚本设计、测试环境准备之后,还需要进行一个重要的工作:性能测试场景设计。那如何设计性能测试场景呢?什么样的性能测试场景是有效的呢?

​ 随着类似云服务、容器等这类技术的成熟,一个系统越来越大,分析难度越来越大,监测指标越来越多,那么如何用最少的性能测试场景,获取最有效的分析数据呢?

性能测试需求方

​ 一个系统为什么要做性能测试呢?肯定有需求驱动它,那么这个需求方有哪些人呢?这些人关注系统的哪些方面呢?

​ 如果是业务人员:他们常用的业务场景是哪些呢?他们不常用的业务场景有哪些?他们最大忍受系统响应是多少时间?最好的系统响应是多少时间?

​ 如果是运维人员:系统部署耗时是多少?系统极限状态下CPU与内存使用率是多少?当内存或CPU达到什么数值值,需要重点关注呢?

​ 如果是开发人员:不同业务的TPS值是多少呢?满足了他们的预期吗?

​ 上述只列出了常用的三个角色,这种角色可能有多种,只有了调研的足够充分,才能确保用户关注的场景不被遗漏。

性能测试场景设计

​ 目前大多数公司都是业务驱动的,那业务人员的需求,属于核心需求,需要重点关注。这部分需求属于性能测试场景的主要关注点。在做这部分性能测试场景设计主要由如下几种测试类型:

  • 基准测试:当前系统已有用户、已有数据量、指定的业务操作配比。比如,论坛系统,当前系统通常在线人数在100人,大约60人浏览帖子,40人编写帖子。比如如下的一个场景:

    用户数 浏览帖子人数 编写帖子人数 当前系统数据量
    100 60 40 100万

    当前系统这里需要基于系统了解,构建测试数据模型。该模型要贴合当前测试场景。

  • 压力测试:基于基准测试场景,增加用户数。基于基准测试场景,该场景主要是获取系统在常用业务配比,随着用户增加,系统的各项指标是否符合用户需求、最大负载用户数是多少、最大负载时系统的CPU、内存使用率是多少。与此同时,通过用户与响应时间图,可以获取到当前系统瓶颈。当随着用户数增加时,响应时间波动比较大而不发生比较大的波动。找到那个拐点,系统用户数,该用户数用于后续稳定性测试。比如,论坛系统,当前系统通常在线人数在100人,大约60人浏览帖子,40人编写帖子。比如如下的一个场景:

    用户数 浏览帖子人数 编写帖子人数 当前系统数据量
    100 60 40 100万
    200 120 80 100万
    300 180 120 100万

    这里数据模型保持不变,通过调整用户数,来观察系统监测指标。一般影响系统性能指标的有多个方面,当某个性能测试场景,性能测试数据存在异常时,再去进行分析定位。先发现问题,在定位问题。

  • 稳定测试:基于压力测试,获取的比较合理的用户数,用户数设置为该值,让系统长时间跑,观察系统的监测指标。比如数,基于压力测试,得出的响应时间出现拐点的用户数为200,那压力测试的场景可以设置为:

    用户数 浏览帖子人数 持续运行时间 编写帖子人数 当前系统数据量
    200 120 7小时 80 100万

基于上述这三种测试类型,来分析下需要涉及的性能测试场景应该具有以下特点:

  • 常用业务配比、正常在线人数、正常数据模型
  • 常用业务配比、正常在线人数的几何倍、正常数据模型
  • 常用业务配比、正常在线人数、调整数据模型(如数量增加几何倍)
  • 常用业务配比、正常在线人数的几何倍、调整数据模型(如数量增加几何倍)

​ 通常满足上述几种特点的都能满足大多数性能测试要求。以上都是个人见解,如有不对可以指正,一起探讨,相互学习共同进步。

发布了592 篇原创文章 · 获赞 221 · 访问量 130万+

猜你喜欢

转载自blog.csdn.net/henni_719/article/details/103519428