首页 > 其他分享 >如何分析并设计性能测试场景

如何分析并设计性能测试场景

时间:2023-03-21 11:02:33浏览次数:32  
标签:场景 压测 性能 接口 订单 测试

转载:https://www.cnblogs.com/imyalost/p/16500205.html

前几天写了一篇文章《如何设计自动化测试case》,里面聊到了为什么要设计case:

  1. 便于业务活动开展
  2. 确保业务场景覆盖
  3. 质量度量和质量内建

其实这几点原因,在性能测试活动中同样适用。

这篇文章,我想聊聊基于性能测试需求分析的压测场景设计的话题。

 

如何理解性能测试场景?

性能测试场景,其实和功能测试没什么区别,只是侧重点不同。

我们在功能测试中经常用到的等价类边界值等分析和设计测试case的方法,目的是为了尽可能的覆盖业务场景,避免遗漏导致的功能逻辑缺失或者未达到预期。

而在性能测试中,基于性能需求分析和设计性能测试场景,侧重的是基于业务场景的请求/流量配比,以及测试数据准备。

这实际上就是我在前面的文章《全链路压测(8):构建三大模型》中提到的性能测试三大模型:

  1. 业务场景模型
  2. 请求流量模型
  3. 测试数据模型

 

如何设计性能测试场景?

假设现在我们要开展一次性能测试,需求背景及描述如下:

需求背景:互联网电商平台;

需求描述:验证订单相关的业务及订单服务的性能;

预期目标:订单服务可以支撑日常线上业务稳定运行;

预期指标:服务级别TPS>200,P0接口99RT<100ms,线上应用CPU%<=40%;

这个时候,如何进行需求分析和测试场景设计呢?

需求分析

  1. 要验证订单服务的性能;
    1. 需要混合场景验证;
    2. 要考虑请求流量配比;
  1. P0接口的99RT<100ms;
    1. 需要梳理订单服务P0接口;
    2. 检查相关监控工具是否接入;

场景设计

假设订单服务有4个P0接口;

分别是创建订单/确认订单/订单列表/订单详情;

各自请求流量占比分别是35%/30%/20%/15%(这里忽略其他占比较小的接口,实际工作中要考虑真实占比);

那么压测场景设计如下:

编号

场景名称

场景类型

压测方式

压测目的

备注说明

1

创建订单

单机单接口

梯度递增

寻找性能拐点,发现性能瓶颈

 

 

可能需要多次压测验证

 

2

确认订单

单机单接口

梯度递增

寻找性能拐点,发现性能瓶颈

3

订单列表

单机单接口

梯度递增

寻找性能拐点,发现性能瓶颈

4

订单详情

单机单接口

梯度递增

寻找性能拐点,发现性能瓶颈

5

 

混合场景

单机服务级

(流量配比)

梯度递增

寻找性能拐点,发现性能瓶颈

6

稳定并发压测

验证预期范围内的性能是否达标

多次调整并发,直至性能达标

7

稳定性测试(>12h)

验证服务长时间运行的稳定性

以最后一次稳定并发压测数值压测

如上所示,大概需要设计七个场景,分别验证接口级别和服务级别的性能。

问题:为什么不直接压测混合场景?

答案:因为一个服务有多个接口,每个接口都可能存在影响性能的因素,通过单接口压测,快速排查解决存在性能问题的因素,这样可以减少直接混合场景压测的性能问题定位分析和优化验证难度。

数据准备

性能测试中数据准备的情况取决于被测的业务场景,以上面的需求为例,准备测试数据时要注意两方面:

业务逻辑

  1. 订单商品库存是否充足;
  2. 下单用户是否有可用优惠券;
  3. 下单用户优惠券是否可叠加;
  4. 订单商品是否参与营销活动;
  5. 下单用户是否需要登录状态检查;
  6. 订单商品优惠券与营销活动是否可叠加;

数据量级

  1. 下单用户数量级;
  2. 用户登录态token有效期;
  3. 商品库存数量是否足够多次使用;
  4. 用户优惠券是否足够(需考虑优惠券核销和恢复);
  5. 营销活动创建以及优惠券&商品和营销活动的关联配置;

完成上述的几个步骤,接下来才是考虑后续的动作。后续的压测准备事项大概包括如下几项:

  1. 环境检查;
  2. DDL同步;
  3. 被测服务分支发布;
  4. 脚本开发及联调通过;

 

以上就是关于性能需求分析以及场景设计的内容,文中举的例子仅供参考,在实际的工作中,需要学会灵活变通。

当然,经验比较丰富的同学场景设计其实可做可不做,流程只是提供一种工程实践的指导思路,并不需要完全照搬。

标签:场景,压测,性能,接口,订单,测试
From: https://www.cnblogs.com/ceshi2016/p/17239198.html

相关文章

  • 软件测试人员如何提高自己的业务竞争力?
    在软件测试行业,现在大环境下门槛较低,大部分中专大专学历都可以在这个行业进行工作,本科学历就这个行业岗位来说,已经有了一定的核心竞争力。(学历虽然不能代表一切,但是可......
  • 软件测试工程师的自我修养是什么?
    1.对异常的敏锐“嗅觉”软件测试需要善于发现产品中存在的不足。不仅仅是从系统使用的正向看产品是否有问题,还要从用户角度出发,去设想产品的行为是否存在问题。正......
  • docker之bwapp漏洞测试环境搭建
    (1)dockersearchbwapp,(2)dockerpull镜像名称,(3)启动容器,(4)浏览器中访问http://本机ip:端口/login.php:会出现提示:(5)访问http://本机ip:端口/install.php做数据库初始化操作,(6)重新登......
  • 软件测试
    ......
  • 高级性能测试工程师面试必问十大问题
    转载:https://www.cnblogs.com/imyalost/p/16423676.html昨天一个前同事找我,问有没有性能测试岗位的面试题,正好之前帮业务团队加面过几次性能测试岗位的候选人,我将面试时候......
  • 界面控件DevExtreme的图表组件——一个高性能数据可视化组件
    DevExtreme拥有高性能的HTML5/JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NETCore,jQuery,Knockout等)构建交互式的Web应用程序,该套件附带功能......
  • 计划测试_白盒测试
    穷举测试一次循环中,从程序入口到出口,假设有5条路径,循环次数假定为20次。穷举测试总路径数为:\(5^{20}=9.53674E+13\)假定每执行1次测试花费1ms,那么穷举测试时间为:30......
  • Go语言:利用 TDD 驱动开发测试 学习结构体、方法和接口
    环境安装:(新手向)在Linux中使用VScode编写"Hello,world"程序,并编写测试-Ubuntu20.4上一篇相关随笔:Go语言:利用TDD测试驱动开发帮助理解数组与动态数组(切片)的区别......
  • 机器学习模型的性能评估方法
    动动发财的小手,点个赞吧!部署模型后,监控其性能对于确保ML系统的质量起着至关重要的作用。要计算准确度、精确度、召回率或f1分数等指标,需要标签。但是,在许多情况下,标签......
  • “性能续航小超人”iQOO Z7系列登场:售价仅1299元起
    2023年3月20日,“性能续航小超人”iQOOZ7系列正式发布,带来同价位领先的闪充大电池体验,并具备出色的游戏性能体验以及全方位的功能配置,普及领先科技体验,带给对注重产品品质和......