性能测试体系之测试模型
时间:2021-07-14
本文章向大家介绍性能测试体系之测试模型,主要包括性能测试体系之测试模型使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
测试模型构建
通过分析系统的交易路径 \交易之间关系\数据的处理与流转\典型交易\业务量\交易比例,以及系统的处理能力等内容,完成测试建型的构建
1.1 业务场景来源与分类
测试模型构建时需要关注的信息主要有:
-
业务场景列表
-
单交易分析调查结果
-
交易路径分析
-
各路径代表交易调查分析
-
被测系统超时流控机制
-
被测异常场景调研结果
-
生产系统问题分析结果
1.2 业务场景来源
通过对以上资料的研究,应获取以下信息:
-
交易日的日均交易量
-
历史峰值交易日的交易量
-
特殊日的交易量
-
不同交易渠道的交易量
-
一般交易日的交易配比
-
历史峰值交易日的交易配比
-
特殊日的交易配比
-
不同交易渠道的交易配比
-
批量处理的流程
-
批量处理的时间窗口要求
-
系统历史数据量
1.3 业务场景分类
业务场景即业务系统在生产运营过程中的不同运营状态
交易处理型系统包括以下几类场景:
业务场景类型 | 业务场景描述 |
---|---|
正常业务日交易场景 | 反映的是业务系统在大多数工作日的平均业务受理情况 |
特殊日交易场景 | 根据不同业务的不同特性,某些业务系统在一些约定的特殊日期内的业务受理情况与一般营业日不同(例如促销、双11等),主要体现在特殊交易种类、交易量、营业时间上的不同 |
高峰交易场景 | 反映业务系统运营过程中出现的短期峰值交易状态,该状态的出现可以是由于集中业务操作、自身流程调度或其他系统接口等原因引起 |
交易线与数据线混合场景 | 部分系统在联机业务处理中包含一些实时的批量交易或数据更新功能,例如批量发红包、批量查询等。此类业务的特点是用户终端或服务端的交易请求量不大,但系统需联机实时处理,且处理动作多,比较耗费系统资源 |
对于批量处理系统,通常还包括以下特定场景:
业务场景类型 | 业务场景描述 |
---|---|
批处理场景 | 包括正常日/特殊日的批处理 |
文件/数据处理场景 | 包括大文件加工以及批量数据处理 |
1.4 业务场景与测试模型转换
根据测试目标的需要,可能存在的测试模型有以下几种:
-
单交易基准测试模型
-
单交易负载测试模型
-
日间混合负载测试模型
-
稳定性测试模型
-
可靠性测试模型
-
系统超时流控测试模型
-
虽然每个业务场景与一个或多个测试模型相对应,但是由于业务场景并不保证对被测系统的覆盖,因此需要在业务场景变换成为测试模型过程中进行必要的检查批量处理测试模型
技术测试中选取典型业务交易的标准: -
根据业务量大小选取典型交易,一般通过统计生产系统TOP10、TOP20确定
-
选取生产系统中消耗资源最多,或者耗时最长的业务交易
-
选取生产系统中交易路径最长的业务交易
-
选取生产系统容易发生故障的业务交易
-
应采取如下步骤完成业务场景与测试模型的转换:为满足其他特殊测试目标需要选取的业务交易
根据测试目标确定测试模型中的具体业务场景
根据业务场景所对应的交易配比初步确定测试模型中采用的交易
对于初步选择的交易根据单交易分析结果检查交易路径覆盖并检查各路径代表交易与初步选择交易是否存在差异
如果检查中发现初步选择的交易覆盖了各路径代表交易和系统交易路径,则可确定业务场景及相应的交易配比,否则需要对之间不同的交易进行分析,评估缺少部分对测试目标的影响,如果发现影响没有或很小,则可以考虑保持原业务场景和交易配比不变,否则需要增加相应的交易
确定业务场景和交易配比后,根据测试目标确定压力场景的操作方式
测试模型与业务场景对应关系如下表:
原文地址:https://www.cnblogs.com/coilan/p/15012285.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- redis学习(十九)
- Android开发6年,互联网寒冬公司倒闭后,耗时3个月北上广求职,终拿到头条Offer!
- 直播软件开发如何使用FFMPEG推流并保存在本地
- react-router学习笔记
- 尤大 3 天前发在 GitHub 上的 vue-lit 是啥?
- BFE.dev前端刷题 23. 实现一个sum()方法
- 彻底深刻理解js原型链之prototype,proto以及constructor(一)
- SAP Spartacus取cart的HTTP请求
- 记一次Netty连接池FixedChannelPool连接未释放问题的排查总结
- 神经网络中的蒸馏技术,从Softmax开始说起
- NullInjectorError R3InjectorError(AppModule)[StoreFeatureModule]
- Angular module加载的原理研究
- NullInjectorError No provider for EffectsRootModule!
- Web 中文字体性能优化实践
- Java反射到底慢在哪?不看后悔