二、系统分析
结合需求分析中第3点,分析系统架构。
1)请求顺序、请求之间相互调用关系
2)数据流向,数据是怎么走的,经过哪些组件、服务器等
3)预测可能存在性能瓶颈的环节(组件、服务器等)
4)明确应用类型 IO型,还是CPU消耗性、内存消耗型-> 弄清楚重点监控对象
5)关注应用是否采用多进程、多线程架构-> 多线程容易造成线程死锁、数据库死锁,数据不一致等
6)是否使用集群/是否使用负载均衡
了解测试环境部署和生产环境部署差异,是否按1:1的比例部署
通常建议测试时先不考虑集群,采用单机测试,测试通过后再考虑使用集群,这样有个比较,比较能说明问题
参考阅读“浅谈web网站架构演变过程 ”:http://blog.csdn.net/qiaqia609/article/details/50809383
三、业务分析
1)明确要测试的功能业务中,功能业务占比,重要程度。
目的在于
<1>明确重点测试对象,安排测试优先级
<2>建模,混合场景中,虚拟用户资源分配,针对不同业务功能施加不同的负载。
2)明确下“需求分析-指标分析”中相关业务功能所需基础数据及数据量问题,因为那块需求分析时可能只是大致估算下,评估指标是否合理,需要认真再分析下
四、用例设计
1)用例设计
通常是基于场景的测试用例设计
<1> 单业务功能场景
运行测试期间,所有虚拟用户只执行同一种业务功能某个环节、操作
<2> 混合业务功能场景
运行测试期间,部分虚拟用户执行某种业务的某个环节操作,部分虚拟用户执行该业务功能的其它环节
或者
运行测试期间,部分虚拟用户执行某种业务功能,部分虚拟用户执行其它业务功能
注:这里用例没说到多少用户去跑,跑多久等,这里只是把他当作相同场景用例下的的一组组测试数据了。
2)事务定义
根据用例合理的定义事务,方便分析耗时(特别是混合业务功能场景测试),进而方便分析瓶颈。
比如,购买商品,我们可以把下订单定义为一个事务,把支付也定义为一个事务。
3)场景监控对象
针对每条用例,结合“系统分析”第4)点,明确可能的压力点(比如数据库、WEB服务器),需要监控的对象,比如tps,耗时,CPU,内存,I/O等