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

性能测试场景分析并设计?超细案例讲解,看这篇就够了

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

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

我们在功能测试中经常用到的等价类边界值等分析和设计测试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同步;
被测服务分支发布;
脚本开发及联调通过;

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

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

生命不息,奋斗不止。勇敢追逐梦想,坚持努力付出,披荆斩棘,从不放弃。只要你有恒心和毅力,就一定能创造属于自己的精彩人生!

机会永远留给有准备的人,坚持努力不懈,总有一天你会收获美好的人生。在奋斗的路上,不要忘记心中初衷,为自己的理想奋斗到底!

人生没有终点,只有不断超越自己的起点。勇敢尝试新事物,不断学习进步,终将开启通向成功的大门。坚持追求梦想,披荆斩棘,才能实现人生价值!

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

相关文章:

  • JAVA9新特性
  • ( 数组和矩阵) 645. 错误的集合 ——【Leetcode每日一题】
  • 2023年全国最新道路运输从业人员精选真题及答案63
  • Kettle安装与使用
  • C51 - DS18B20
  • 手把手教你使用vue2搭建微前端micro-app
  • DDR3(MIG核配置官方demoFPGA代码实现及仿真)
  • 传奇人物《周兴和》书连载之67 不辱神圣的使命
  • Spring框架中的单例Beans是线程安全的么?
  • AI脚本插件开发-链接图自动建立档名-插件制作源码-illustrator插件开发
  • rust智能指针
  • Git、Gitee、Github、Gitlab区别与联系
  • 接口优化的策略
  • android 隐藏底部虚拟按键
  • 基于电流控制的并网逆变器(Simulink)
  • learn_C_deep_9 (汇编角度理解return的含义、const 的各种应用场景)
  • 基于深度学习的OCR技术
  • 『python爬虫』09. bs4实战之下载精美壁纸(保姆级图文)
  • 【Linux学习】多线程——线程控制 | 线程TCB
  • Node 10 接口
  • 大型互联网企业大流量高并发电商领域核心项目已上线(完整流程+项目白皮书)
  • 汇编语言学习笔记六
  • 多商户商城系统-v2.2.3版本发布
  • 科研人必看入门攻略(收藏版)
  • 第5章 循环和关系表达式
  • Scalable Vector Graphics (SVG)中的svg、clipPath、mask元素
  • Java基础(十五)集合框架
  • 安装gitea
  • Java异常处理传递规范总结
  • 2d俯视视角游戏,可以切换多种枪械