1 引言 1.1 编写目的
本文规范在使用性能测试过程中进行测试模型的分析,旨在指导性能测试实施人员进行测试模型的建立,为后续性能实施打好基础。
1.2 适用对象和范围
预期读者为测试管理人员、测试实施人员、技术支持人员、项目质量管理人员、项目管理人员等系统技术质量相关人员。
2 测试模型构建
通过分析系统的交易路径、交易之间关系、数据的处理与流转、典型交易、业务量、交易比例,以及系统的处理能力等内容,完成测试建型的构建。
2.1 业务场景来源与分类
测试模型构建时需要关注的信息主要有:
2.2 业务场景来源
通过对以上资料的研究,应获取以下信息:
2.3 业务场景分类
业务场景即业务系统在生产运营过程中的不同运营状态。
交易处理型系统通常包括以下几类场景:
| 业务类型 | 业务场景描述 |
| 正常业务日交易场景 | 反映的是业务系统在大多数工作日的平均业务受理情况 |
| 特殊日交易场景 | 根据不同业务的不同特性,某些业务系统在一些约定的特殊日期内的业务受理情况与一般营业日不同(例如促销、双11等),主要体现在特殊交易种类、交易量、营业时间上的不同 |
| 高峰交易场景 | 反映业务系统运营过程中出现的短期峰值交易状态,该状态的出现可以是由于集中业务操作、自身流程调度或其它系统接口机制等原因引起 |
| 交易线与数据线混合场景 | 部分系统在联机业务处理中包含一些实时的批量交易或数据更新功能,例如批量发红包、批量查询、等。此类业务的特点是用户终端或服务端的交易请求量不大,但系统需联机实时处理,且处理动作多,比较耗费系统资源 |
对于批量处理系统,通常还包括以下特定场景:
| 业务场景类型 | 业务场景描述 |
| 批处理场景 | 包括正常日/特殊日的批处理 |
| 文件/数据处理场景 | 包括大文件加工以及批量数据处理 |
2.4 业务场景与测试模型转换
根据测试目标的需要,可能存在的测试模型有以下几种:
虽然每个业务场景都与一个或多个测试模型相对应,但是由于业务场景并不保证对被测系统的覆盖,因此需要在业务场景变换成为测试模型过程中进行必要的检查。
技术测试中选取典型业务交易的标准:
应采取如下步骤完成业务场景与测试模型的转换:
测试模型与业务场景对应关系如下表:
| 测试模型 | 测试目标 | 对应的业务场景 | 压力场景 |
| 单交易基准测试模型 | 通过测试,检查该交易是否存在性能缺陷,同时为性能测试提供参考数据 | 无 | 单支交易在系统无压力情况下重复执行多次 |
| 单交易负载测试模型 | 通过逐步增加并发量进行负载测试,获取单交易业务处理性能峰值,并验证交易是否存在并发性问题 | 无 | 逐渐增加并发量 |
| 混合负载测试模型 | 通过逐步增加并发量进行负载测试,获取单交易业务处理性能峰值,并验证交易是否存在并发性问题 | 该测试模型可能与正常业务日交易场景、特殊日交易场景、高峰交易场景、交易线与数据线混合场景等多个业务场景对应 | 逐渐增加并发量 |
| 稳定性测试模型 | 检查在持续的压力情况下,系统长期运行时的业务处理能力及系统可能存在的缺陷 | 正常业务日交易场景 | 稳定压力 |
| 可靠性测试模型 | 通过模拟系统可能遇到的各种异常情况,如带宽受限、网络连通不好、网络延时、超时、各系统主机宕机、应用异常终止、资源死锁、大并发用户集中爆发访问等情况,检查系统的异常处理能力 | 正常业务日交易场景,高峰交易场景 | 稳定压力+突增压力 |
| 系统超时流控测试模型 | 对系统中各个超时流控功能点有效性、可靠性、稳定性等验证在模拟实际生产系统情况下,验证多个超时流控机制并存情况下的正确性 | 该测试模型可能使用正常业务日交易场景,但在进行有效性和可靠性验证时可以不使用任何业务场景 | 根据测试目标选择稳定压力、单交易多次重复执行等 |
| 日终处理测试模型 | 验证日终设计操作正确性以及是否满足日终操作时间窗要求 | 日终批处理场景文件/数据处理场景 | 按照日终操作要求执行 |
2.5 测试模型调整 2.5.1 调整前提
对于一个已经构建好的测试模型,当出现以下情况造成原有测试模型不再适用的时候,必须要对原测试模型进行相应的调整形成新的测试模型:
2.5.2 调整原则
模型调整的一般原则:
2.5.3 调整方法
进行测试模型调整时,必须考虑两个问题,其一是数据流的清晰完整,其次是测试模型调整的合理性。实际的测试模型调整是一个需要根据实际情况进行权衡的过程。通常进行测试模型的调整一般有两种方法:调整和重构。
调整的方法是,在原有测试模型不变的前提下,对交易之间的占比关系进行适当的调整以符合实际测试目标的需要,通过删减合并的方式对测试模型进行修改。
重构的方法是,对新的测试目标或测试环境进行分析,确定适合的测试模型和相应的业务场景,使之能够和测试目标相匹配。
| 调整原因 | 调整方法 | 调整策略 | 影响分析 |
| 由于业务场景变化使得原测试模型不合理 | 调整 | 采用之前的测试模型作为基础,并对当前系统业务结构和规模重新进行评估,得出差异点,对原测试模型进行调整 | 之前的测试模型可能因为业务结构的发展已经完全不适用了,但此时重构测试模型可能需要花费相同或者更多的工作量 |
| 业务需求/范围变更 | 调整或重构 | 对变更的业务需求和范围进行梳理,调研评估其业务结构,并对原测试模型进行评估。如果变更只是使得业务场景发生变化,则找出差异点,对原测试模型进行调整;如果变更使原测试模型不可用,则需重新分析业务场景,重构测试模型,以满足或符合测试目标的需要 | 某些业务需求的变更对业务模型影响并不大,例如业务需求仅是用户操作方式的变更,业务路径和交易量并没有发生改变,则此时不需要对业务模型进行调整。当业务路径或交易量有明显变化时,要考虑调整模型 |
| 测试目标变更 | 调整或重构 | 分析变更前、后测试目标的差异,是否需要采用不同的测试模型进行测试,围绕测试目标对测试模型进行调整 | 测试目标的不同对测试模型的要求也会有所差异 |
| 系统架构部署变更、测试环境限制 | 调整或重构 | 当出现系统的架构进行修改或因测试环境无法和实际生产环境一致使得某些业务无法在测试环境模拟情况时,要分析对业务路径及交易量的影响,并依据此影响对测试模型进行调整 | 架构调整通常是因性能或商业战略的需要,而测试环境无法和实际生产环境一致在测试实施过程中也是经常发生的 |
| 重大的功能改造 | 调整或重构 | 分析改造对业务路径和业务量的影响,依据此影响对测试模型进行调整 | 系统某些功能进行重大的改造,可能会到导致业务路径或业务量的变更 |
| 其他因素(时间因素) | 调整或重构 | 根据实际遇到的问题针对性的进行分析,找到影响点,分析影响程度,得出模型调整比例差值,对测试模型进行适当调整 | 其他影响因素,比如测试时间很紧迫,测试资源受限,无法完全按照业务模型进行实施执行,需要对模型进行裁剪或一定比例缩放以便能在一定程度上即满足测试目标又充分利用现有资源 |
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!