测试需求分析浏览器
可从需求文档、市场调研去收集性能测试指标缓存
需求文档服务器
客户明确需求cookie
一般状况,客户有明确的需求,定义一些性能测试指标,例:每秒用户登陆页面刷新多少、每秒登陆用户量多少,用户在线总量多少,咱们明确性能测试指标。网络
客户隐形需求:并发
基于客户明确指标下,会有一些隐性指标,例:100万在线用户的查询在5秒响应,咱们也许归入性能测试指标内。性能
用户模型肯定:测试
1 用户指标:用户登陆TPS需达到50、用户登陆页面刷新TPS需达到250设计
2 用户总量:100万代理
3 用户模型:系统天天用户在线量在100万左右,平均在早晨八、11点期间登陆,其中登陆页面刷新与登陆比例为5:1
市场调研
客户无明确需求
特殊状况下,客户只会提供一些基础数据,例2000个机构下,500万的用户总量,咱们须要根据这些基础数据提炼出咱们的性能指标
市场调研需求
例:对其中1个机构1个月的用户登陆数进行数据采集(天天早晨8-9点是登陆高峰期,天天大约是1小时内登陆100人次,平均到每秒100÷3600约为0.027次/秒),而后在推算2000个机构下,用户每秒登陆0.027*2000约50次,在根据后台日志推算出,登陆与登陆页面刷新比例为1:5,登陆页面刷新TPS为2500
用户模型肯定:
肯定性能指标后,能够建立用户模型
1 用户指标:用户登陆TPS需达到50、用户登陆页面刷新TPS需达到250
2 用户总量:根据用户指标推算出用户总量,或者由相关系统推算出用户总量
3 用户模型:系统天天用户在线量在100万左右,平均在早晨八、11 点期间登陆,其中登陆页面刷新与登陆比例为5:1
测试对象分析
可从测试对象分析、测试模型分析、测试指标分析、模块耦合性分析考虑
测试对象分析:
从业务流程、后台系统模块分析,而后明确测试对象
按照业务流程拆解:
根据业务提炼出用户基础流程:登陆页面刷新、登陆
1 登陆页面刷新:手机连上wifi,浏览器任意访问一地址,请示会被接入层的设备重定向到后台,后台通过逻辑计算,推送给客户一个登陆页面
2 登陆:用户输入用户名、密码,而后点击登陆,后台系统进行登陆,返回成功或者失败
按照后台系统模块拆解:
1 登陆页面刷新模块:用户的HTTP请求通过系统层面的中间件处理分发到后台系统,而后被推送模块接收,再进行计算,推送出相应的登陆页面,这里的计算可能跟用户类型以及所在机构有关系。
2 用户登陆模块:用户输入用户名、密码请求一样经系统层面中间件处理分发到后台系统,而后登陆模块接收,再进行用户名密码的校验,最后返回结果。
3 最后提炼出关键系统模块:HTTP 中间件、推送模块、登陆模块,最后这些系统模块会在性能瓶颈定位中起到方向做用
明确测试对象:
根据业务流程分析与后台系统模块分析,明确测试对象的业务、系统模块、指标
1 业务:用户链接wifi,浏览器访问网页,被重定向到用户登陆页面,而后输入用户名密码时行登陆的一种场景
2 模块:整个流程包括http请求、中间件、推送模块、登陆模块
3 指标:登陆页面刷新:TPS250、登陆动做:TPS50、在线总量:100万
测试模型分析:
用户模型场景分析
根据用户模型设计出典型应用场景与可靠性应用场景
典型应用测试主要从常规测试指标、测试环境去分析,例:
1 常规测试指标是登陆页面刷新250TPS / 登陆50TPS 、用户量100万
2 常规测试环境是网络是无限流、无延迟、测试硬件的CPU、内存、磁盘的正常状况设计场景
可靠性应用场景主要从很是规测试指标、测试环境去分析,例:
1 很是规测试指标是高于指标的20%的情景下验证
2 很是规测试环境是网络存在限流、延迟状况很大、测试硬件的CPU、内存、磁盘受限的异常状况下设计场景
用户模型场景设计
根据用户模型分析设计出用户模型场景,例:
1 用户典型应用场景:
在10MB/秒限流与20ms延迟网络网络状况,对CPU16核、内存32G、磁盘10K转/秒的服务器进行TPS250的登陆页面刷新动做,以及TPS50用户登陆动做,持续时间约5.5小时,最终上线用户量达100万左右
2 用户可靠性应用场景:
在1MB/秒限流与100ms延迟网络状况,对CPU4核、内存16G、磁盘7200转/秒的服务器进行TPS300的登陆页面刷新动做,以及TPS60用户登陆动做,持续时间5.5小时,最终上线用户量达100万左右
测试指标分析:
提炼出关键指标
根据用户模型提炼出用户关键指标-TPS250、TP50 、100万
模块耦合性分析:
根据后台系统模块分析出可能会涉及到的模块耦合性
1 HTTP请求中的cookie贯穿整个业务交互过程,在测试脚本中应该缓存cookies,保证业务正常,同时后台考虑cookies的存取方式,保证大并发下cookies不会出现丢失或者写满的状况
2 中间件反向代理将不一样请求分发到内部模块:推送模块、登陆模块、其余模块、考虑中间件自己会不会存在瓶颈,对业务影响
测试重点分析
可从测试执行策略、测试监控策略、测试风险与输出方向去考虑