1、确定项目类型
首先确认提测项目的类型,如新项目上线则必须要做性能测试,其他根据不同类型判断性能测试重点或是否需要性能测试。
序号项目类型类型说明
1新项目上线新项目首次上线
2项目推广项目已上线,准备执行项目推广
3系统架构变更已有项目系统架构变更
4系统重要接口变动系统重要业务接口或者大交易接口变动
5系统技术选型系统架构不变更情况下,使用不同技术或者应用版本
6生产问题优化生产环境发现问题,进行优化处理
7新增业务模块新开发重要业务模块
8测试业务模型变更系统大交易量业务发生变更,原先的性能测试结果不适用当前系统。
2、测试目的(提测人、项目经理)
[if !supportLists]l [endif]基准测试:模拟当个用户向服务器发起交易,迭代N次,获取平均响应时间值,目的是检查业务本身是否存在性能缺陷。同时为将来混合场景的系统测试性能分析提供参考依据。
[if !supportLists]l [endif]负载测试:在当前测试软硬件环境下,验证xxx系统能否满足业务需求规划的指标。
[if !supportLists]l [endif]压力测试:在当前测试软硬件环境下,系统所能承受的最大并发负荷,并找出系统可能存在的瓶颈所在。
[if !supportLists]l [endif]稳定性测试:在当前测试软硬件环境下,系统最大处理能力并发用户,运行8小时或12小时。
3、系统相关人员(项目经理)
角色职责责任人备注
项目经理负责测试进度跟进、协调测试工作开展和相关性能指标确认。
产品负责待测系统的需求和相关应用信息确认,负责系统相关运营信息收集与确认。
开发人员负责确认对应功能或接口的实现逻辑,提供脚本调试支持,性能问题分析和调优。
测试人员负责提供业务功能的操作支持,业务场景分析支持。
运维负责测试环境部署联调、应用等性能问题的分析和定位。
DBA负责协助基础数据准备及数据库方面的性能问题分析定位与调优。
性能测试人员1) 负责测试场景设计、测试案例设计、测试脚本制作
2) 负责测试数据准备
3) 负责测试工具的安装部署
4) 负责测试任务执行、测试数据记录、测试结果分析
4、测试范围(提测人,产品接口人)
测试需求选择原则,根据xxxx系统所涉及的功能点进行分析。对涉及到系统关键业务交易、中高频交易、易消耗资源、错误率高的功能进行压测,可按如下评估:
1. 是否在平台中处于核心位置(15分);
2. 是否有升级,且升级内容中包含了外部系统对接接口、支付接口、Web Service调用接口等与其他系统关联接口(20分);
3. 是否存在部署方式调整或优化(15分);
4. 是否增加了性能风险较高的调整(20分);
5. 是否存在客户要求必须测试的组件或业务流程(20分);
6. 是否涉及多个功能缺陷的修复,且流程发生较大变化(10分)。
如果上述一般评估项,总计分值超过60分,则需进行性能测试。
附测试清单(excel)
5、业务量统计(产品接口人)
统计已有或预计生产实际的业务量,用于建立业务模型和计算性能指标。
业务名称笔/天笔/月集中时间高峰
开户10000
登录
维护个人信息
……
6、业务功能对应接口列表(对应开发)
如果有就可以直接提供,并结合yapi分析,如果没有只能使用抓包工具进行分析。
模块名功能名接口名称接口地址
访客短信验证码发送验证手机是否被占用验证手机是否被占用/mb/pqyg5f/visitor/mobile-valid
输入邮箱验证页面访客开户-保存邮箱保存邮箱/core/vlopsv/ci-info/save-email
访客开户-查询在途申请查询在途申请/core/boasiq/application/get-pending
7、业务模型配比:(产品接口人、功能测试负责人)
作为性能测试实施的依据,业务模型建立的目的主要在于为性能测试提供更接近于生产实际的业务场景,使得测试结果对生产更具有参考性。
序号业务名称接口名业务配比
1提交预约注册表单/ajax/eweb/v1/reg/submit30%
2查询预约注册表单/ajax/eweb/v1/reg/query70%
/ajax/eweb/v1/otp/email
8、性能需求指标(项目经理、产品接口人)
对业界类似产品做分析、经业务及产品评估确认,综合得xxxxx系统性能需求如下:(按实际业务场景计算并审核性能指标的合理性)
序号指标类型指标名称指标要求说明
1系统指标交易响应时间200MS是指从客户端发起业务请求到得到响应的整个过程所经历的时间
2并发用户数10是指同时对应用系统发起业务请求的用户数量
3系统处理能力(TPS)/是指系统每秒钟处理完成的交易数量
4查询类交易成功率99.90%是指交易成功的数量占发出的总交易量的百分比
支付类交易成功率99.99%
6 服务资源指标CPU<=90%CPU负载不得超过百分之90,生产正常超过60%会提示预警
7内存/内存无泄漏,GC正常
8磁盘I/O/读写正常,无等待排队。
9网络I/O/数据传输上下行无阻塞异常
响应时间:一般操作的响应时间为2,5,8秒,2秒内优秀,5秒内良好,8秒内可接受,其它一些特殊的操作,如上传,下载可以依据用户体验的情况,延长响应时间。
响应时间必填,TPS、并发用户数可二选一
TPS、并发用户计算方式如下(仅供参考),
TPS:使用二八原则如
[if !vml]
[endif]
并发用户数:假设每天有5000人在使用银行APP,每人平均停留时长10分钟,设用户基本在一天内的早九至晚九点操作。
C=5000*10/720≈70
C^=70+3*根号70≈95
1)登录系统的用户数量(n),可以理解为平均每天访问用户数
2)用户从登录系统到退出系统的时间间隔(L),可以理解为一天内用户从登录到退出系统的时间间隔
3)被考察的时间长度(T),可以理解为一天内有多长时间有用用户访问系统
• 平均并发用户数的计算:C=n*L/T
• 并发用户数峰值计算:C^=C+3*根号C
特殊场景性能指标说明
[if !supportLists]1、 [endif]上传下载
[if !supportLists]2、 [endif]调用其他外围系统
9、测试环境确认及原则(运维)
首先需要确认测试的执行环境,是生产、UAT还是独立的测试环境。测试环境对测试结果的影响是很大的,大体如下:
生产:在执行测试的过程不能对其他用户访问造成影响(时间选择很重要),测试数据污染要解决(数据隔离:线程标记、用户白名单、挡板、mock对象、测试数据落入影子库);
UAT:作为验收环境,一般来说数据的准确性和系统版本都是最新和相对稳定的,但要考虑对其他业务的影响,理由同上;
测试:数据预埋、基础数据准备、测试数据准备、每次执行迭代后的数据初始化、服务器配置和生产是否可以等量代换等;
10、被测环境信息(功能测试负责人)
访问地址:
登录用户:
审批用户:
11、测试环境网络拓扑图(运维)
需运维协助提供测试网络网络拓扑图,以便后续监控资源使用情况,更清晰的了解需要监控的内容。
[if !vml]
[endif]
12、需要准备的基础数据量(产品接口人)
模拟三年后数据量:约xxW用户,xxW交易数据量。
数据类型数据准备情况主要涉及表
基础数据个人用户数据12W+企业400
(企业用户在数据行中以企业类型标记)
za_bank_usercenter.t_user --用户表
za-bank-corecenter.t_account_progress
--开户申请进度
za-bank-ekyc.t_ekyc_appliction --ekyc申请记录
za-bank-ekyc.t_ekyc_progress --ekyc进度
za-bank-ekyc.t_customer_* --客户职业信息、风险、反洗钱、客户信息
ocbs387.citcus –客户表
ocbs387. Citcdem –企业客户表
(企业ekyc不涉及)
活期存款20W笔ocbs387.ddtccy1
交易量2500Wza-bank-corecenter.t_transfer_flow --转账流水
ocbs387.sctjrnh
ocbs387.sctjrn1
ocbs387.sctjrn2
有效定期存款 1W笔ocbs387.tdtmst
1、基础数据:比如电商系统的库存数、SKU、用户信息等;
2、预埋/铺底数据:根据生产实际的数据量对测试环境的DB进行数据预埋,尽量和生产保持一致或可以等量换算(对应的BD实例名);
3、测试数据:测试数据如何生成?数据生成规则,比如加解密、随机生成等;
4、垃圾数据:每轮测试产生的垃圾数据如何隔离或者清理;
5、数据脱敏:如果是在生产环境进行压测,如何进行数据脱敏或者数据隔离防污染策略;
13、数据库信息(DBA)
本地数据库连接串
华为云堡垒机
14、服务器资源监控(运维)
服务列表
华为私有云:
服务列表