基线性能测试法和影响性能的因子测试法,都是从架构、设计和实现角度去考虑的,并没有从用户使用的角度考虑。
场景性能测试法;充分考虑用户的使用因素,以及这些因素是如何影响性能的,以此评估系统是否能够满足用户在特定场景下的使用。
场景是用户如何使用这个系统以完成预定目标的所有情况的集合。
场景测试模型一般来说,从使用的角度来说,产品会有3个维度——部署、配置和业务负载,但是大多数测试者会习惯性地从产品设计的角度去测试,比如在测试前仔细分析开发实现流程,然后设计测试条件或者测试数据去覆盖该流程。但是,场景测试却要求测试者从用户使用习惯入手,包括用户会如何部署、用户会如何配置、用户会使用怎样的业务负载,依据这些来构造测试用例,其中涉及的测试检查点也必须是用户的关注点。
1. 场景性能测试时,首先需要分析用户在实际使用中有哪些部署方式。
1)用户有哪些典型的部署场景(例如组网),与之相关的上下行环境是怎样的?
2)用户有哪些部署方式(如虚拟化部署、服务器部署等)?
3)用户部署的环境和测试环境有哪些不同?
这些典型部署环境中的资源是否能够满足系统的基本要求,环境中是否存在资源争抢或者明显的资源短板,如果有则判断其是否会影响性能,然后将可能影响性能的点作为性能测试因子。
2. 在配置方面,场景性能测试需要分析、总结用户实际使用中的典型配置,并明确用户是怎么使用这些配置的,例如配置的数量、复杂度、是否会动态变化、变化频率等。因为很多时候,这些都会影响系统的关键算法,影响系统性能。
需要将这些配置作为场景性能测试的配置,并在性能测试过程中,按照用户的使用习惯去动态调整配置,确定这些操作对系统性能的影响。
3. 在业务负载方面,在场景性能测试中,还需要尽量模拟用户真实业务的负载特点:
3.1) 业务的新建情况和并发规模。
3.2) 吞吐量大小。
3.3) 数据包的大小、突发情况等。
3.4) 业务类型分布。
3.5) 业务是否存在规律,如周期性变化等。
除了正常业务负载之外,还需要考虑一些常见异常业务,包括攻击。
从用户关注点角度来说,场景性能测试主要关注那些和用户性能体验相关的指标,如“响应时间”、“抖动”、“刷新率”等。
摘取自刘琛梅老师的《测试架构师修炼之道:从测试工程师到测试架构师 第2版》
网友评论