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

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

640.png


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


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


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


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


如何理解性能测试场景?


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


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


而在性能测试中,基于性能需求分析和设计性能测试场景,侧重的是基于业务场景的请求/流量配比,以及测试数据准备。这实际上就是我在前面的文章《全链路压测(8):构建三大模型》中提到的性能测试三大模型:


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


如何设计性能测试场景?


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


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

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

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

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


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


需求分析


1.要验证订单服务的性能;

a.需要混合场景验证;

b.要考虑请求流量配比;

2.P0接口的99RT<100ms;

a.需要梳理订单服务P0接口;

b.检查相关监控工具是否接入;


场景设计


假设订单服务有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. 脚本开发及联调通过;


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


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

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
21天前
|
测试技术 数据安全/隐私保护
深入理解与应用软件测试中的边界值分析法
【4月更文挑战第23天】在软件测试的诸多技术中,边界值分析法因其简洁性和高效性而备受青睐。本文旨在探讨边界值分析法的核心原理及其在实际测试场景中的应用。通过对边界条件进行系统的识别、分类和测试,该方法能够有效地发现软件缺陷。我们将详细讨论如何确定边界值,设计测试用例,以及如何处理复杂数据类型的边界情况。此外,文章还将展示通过案例研究来验证边界值分析法在提升测试覆盖率和发现潜在错误方面的实际效益。
|
14天前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率与准确性的策略分析
【4月更文挑战第30天】在快速发展的数字时代,软件已成为支撑现代社会运行的核心。随着软件系统的日益复杂化,确保其质量与稳定性显得尤为重要。软件测试作为保障软件质量的关键步骤,它的效率和准确性直接影响着产品的上市时间和用户体验。本文将探讨如何通过采用自动化测试工具、实施持续集成(CI)与持续交付(CD)流程、利用人工智能(AI)技术以及加强测试人员的专业培训等策略来提升软件测试的效率与准确性。
|
5天前
|
机器学习/深度学习 人工智能 数据管理
深入分析自动化测试中的挑战与机遇
【5月更文挑战第9天】随着软件行业的迅速发展,自动化测试已经成为确保软件质量、提高开发效率的关键手段。然而,在实施自动化测试过程中,企业和测试人员面临着众多挑战,包括测试脚本的维护问题、测试数据管理、与持续集成/持续部署(CI/CD)流程的融合等。本文将探讨这些挑战,并分析在这些挑战背后所隐藏的机遇,比如测试自动化工具的创新使用、人工智能(AI)在测试中的应用以及测试策略的优化。通过案例分析和最新行业趋势的讨论,我们旨在为读者提供对自动化测试未来发展的深刻见解。
|
7天前
|
安全 数据挖掘 测试技术
深入探究软件测试中的风险分析与管理
【5月更文挑战第7天】 在软件开发生命周期中,风险分析与管理是确保产品质量和项目成功的关键步骤。本文将探讨软件测试过程中如何有效进行风险评估、分类及采取相应的缓解措施。文章首先介绍了风险管理的重要性,然后详细阐述了风险识别的技术和工具,接着分析了如何制定和实施风险应对策略。最后,通过案例研究展示了一个结构化风险分析流程的实施效果。
|
10天前
|
机器学习/深度学习 人工智能 算法
深入分析自动化测试中AI驱动的测试用例生成
【5月更文挑战第4天】随着人工智能(AI)技术的飞速发展,其在软件测试领域的应用也日益广泛。特别是在自动化测试过程中,AI技术能够显著提高测试用例的生成效率和质量。本文将探讨AI在自动化测试用例生成中的应用原理、优势以及面临的挑战,并展示通过AI技术优化测试流程的实际案例。
46 8
|
12天前
|
测试技术
深入理解软件测试中的边界值分析法
【5月更文挑战第2天】 在软件测试领域,边界值分析是一种高效且实用的测试设计技术。本文将探讨边界值分析法的原理、实施步骤以及其在各种测试场景中的应用。通过对边界条件进行精确的测试,可以揭示那些可能被忽视的错误,从而提高软件产品的质量。文中还将讨论如何结合其他测试方法来优化边界值分析,确保测试过程更加全面和高效。
|
12天前
|
算法 异构计算
基于直方图的图像曝光量分析FPGA实现,包含tb测试文件和MATLAB辅助验证
该内容包括了算法的运行效果展示、软件版本信息、理论概述和核心程序代码。在正常图像中,`checkb`位于`f192b`和`f250b`之间,而多度曝光图像中`checkb`超出此范围,判断为曝光过度。使用的软件为Vivado 2019.2和MATLAB 2022a。理论依据未详细给出,但提及主要方法。提供的Verilog代码段用于处理图像数据,包括读取文件、时钟控制及图像histogram计算等,其中模块`im_hist`似乎是关键部分。
|
15天前
|
前端开发 JavaScript 测试技术
深入探索自动化测试框架:Selenium与Appium的对比分析
【4月更文挑战第29天】 在快速迭代的软件发展环境中,自动化测试已成为确保软件质量和加速产品上市的关键步骤。本文将重点探讨两种广泛使用的自动化测试框架——Selenium和Appium,通过对比它们的核心特性、适用场景及执行效率,为软件开发和测试团队提供选择指南。文章不仅分析了各自的技术架构和脚本语言支持,还讨论了它们在处理Web应用和移动应用测试时的优缺点,旨在帮助读者根据项目需求做出更加明智的选择。
|
15天前
|
机器学习/深度学习 人工智能 算法
深入分析自动化测试中AI驱动的测试用例生成技术
【4月更文挑战第29天】随着人工智能技术的不断发展,其在软件测试领域的应用也越来越广泛。本文主要探讨了AI驱动的测试用例生成技术在自动化测试中的应用,以及其对提高测试效率和质量的影响。通过对现有技术的深入分析和实例演示,我们展示了AI如何通过学习和理解软件行为来自动生成有效的测试用例,从而减少人工编写测试用例的工作量,提高测试覆盖率,降低错误检测的成本。
|
16天前
|
测试技术 项目管理
深入理解软件测试中的自动化边界值分析
【4月更文挑战第28天】 在追求效率和准确性的软件测试领域,自动化测试已经成为不可或缺的一环。本文专注于探讨自动化测试中一个特定的测试方法——边界值分析,并详细阐述其在提高测试效率和有效性方面的重要性。通过将理论与实践相结合,本文不仅解释了边界值分析的概念和重要性,还展示了如何利用自动化工具执行边界值测试,以及如何根据不同项目需求定制边界值分析策略。文章的目的在于为软件测试工程师提供一种高效的自动化测试策略,帮助他们系统地识别和处理潜在的边界问题,确保软件产品的质量。