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

如何理解性能测试场景?

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

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

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

如何设计性能测试场景?

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

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

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

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

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

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

需求分析

① 要验证订单服务的性能

  • 需要混合场景验证;
  • 要考虑请求流量配比;

② P0接口的99RT<100ms

  • 需要梳理订单服务P0接口;
  • 检查相关监控工具是否接入;

场景设计

假设订单服务有4个P0接口,分别是创建订单/确认订单/订单列表/订单详情;

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

那么压测场景设计如下:

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

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

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

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

数据准备

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

业务逻辑

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

数据量级

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

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

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

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

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

源自公众号  老张的求知思考世界



留言