当前位置: 首页 > news >正文

性能测试场景分析并设计?超细案例讲解

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

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

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

设计性能测试场景

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

需求背景:互联网电商平台;
需求描述:验证订单相关的业务及订单服务的性能;
预期目标:订单服务可以支撑日常线上业务稳定运行;
预期指标:服务级别TPS>200,P0接口99RT<100ms,线上应用CPU%<=40%;

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

需求分析

要验证订单服务的性能;
需要混合场景验证;
要考虑请求流量配比;

P0接口的99RT<100ms;
需要梳理订单服务P0接口;
检查相关监控工具是否接入;

场景设计

假设订单服务有4个P0接口;
分别是创建订单/确认订单/订单列表/订单详情;
各自请求流量占比分别是35%/30%/20%/15%(这里忽略其他占比较小的接口,实际工作中要考虑真实占比);

那么压测场景设计如下:

编号场景名称场景类型压测方式压测目的备注说明
1创建订单单机单接口梯度递增寻找性能拐点,发现性能瓶颈可能需要多次压测验证
2确认订单单机单接口梯度递增寻找性能拐点,发现性能瓶颈可能需要多次压测验证
3订单列表单机单接口梯度递增寻找性能拐点,发现性能瓶颈可能需要多次压测验证
4订单详情单机单接口梯度递增寻找性能拐点,发现性能瓶颈可能需要多次压测验证
5混合场景单机服务级(流量配比)梯度递增寻找性能拐点,发现性能瓶颈可能需要多次压测验证
6混合场景单机服务级(流量配比)稳定并发压测验证预期范围内的性能是否达标多次调整并发,直至性能达标
7混合场景单机服务级(流量配比)稳定性测试(>12h)验证服务长时间运行的稳定性以最后一次稳定并发压测数值压测

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

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

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

数据准备

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

业务逻辑
订单商品库存是否充足;
下单用户是否有可用优惠券;
下单用户优惠券是否可叠加;
订单商品是否参与营销活动;
下单用户是否需要登录状态检查;
订单商品优惠券与营销活动是否可叠加;

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

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

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

举的例子仅供参考,实际上还需要结合具体的业务需求来设计,需要学会灵活变通

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群即可自行领取。

http://www.lryc.cn/news/317040.html

相关文章:

  • python面向对象练习一
  • 【Linux-tar/gzip/zip】
  • 第一代高通S7和S7 Pro音频平台:超旗舰性能,全面革新音频体验
  • el-menu + el-badge 菜单加红点标识el-badge
  • python: inspect模块各函数的用法
  • 优化代码性能:C#中轻松测量执行时间
  • I2C学习总结
  • libcudart.so libcuda.so之间的关系
  • STM32基本定时功能
  • Linux学习:权限
  • 汉诺塔问题代码写法的详细解析
  • Python爬虫入门
  • 【数据结构学习笔记】选择排序
  • 小资金适合做伦敦金的投资吗?
  • 自动化运维工具 ---------------Ansible
  • 富格林:有效做单安全盈利方法
  • 二分查找的理解及应用场景。
  • 共创时代,品牌如何做好UGC营销?
  • 华为三层交换机:ACL的基本实验
  • 基于springboot+vue的旅游管理系统
  • 4. git 添加版本标签
  • 2024 PhpStorm激活,分享几个PhpStorm激活的方案
  • 2419. prufer序列(prufer编码,模板题)
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Text)
  • 开源大数据集群部署(十五)Zookeeper集群部署
  • 服务器镜像是什么
  • JWT原理
  • 操作系统:一款纯正的“管理”软件
  • Mac笔记本聚焦SpotLight占用内存太高的 解法
  • C++中.h和.hpp文件有什么区别?