性能测试流程
一个项目如果有性能需求,那恭喜你,你接到活了,于是你开始着手开始性能测试。
首先第一步,你会先去了解业务,与此同时,产品或者项目经理也会给出他们的一些性能需求,和相关的指标要求,这个时候,你可以凭借你的经验和业务的实际情况深入一步挖掘量化性能指标,因为这直接影响到的测试终止条件,所以第一步尤为重要。可以根据以往项目的经验,给出你的一些测试通过标准,然后与相关人员确认,这样测试的目标就会非常明确,达到事半功倍的效果。
好了,你的目标有了,你该提供你的测试方法了,你心中有了对整个业务的认识和理解,它可能包含了几个流程,你脑海中开始勾勒你要测试的场景。假如说你测的是一个购物下单的业务性能,购物包含一些实际的流程和功能,比如说登录,查看商品列表,查看商品详情,然后购买,下单,那你必须得对上述各个功能都准备一个脚本和至少一个场景,每个脚本拥有自己独立的参数和测试数据,这是为了方便之后的混合场景,针对某些功能可能一个场景还不够,比如说购买商品,你可能需要准备至少两种场景,一种是很多人抢购一件商品,另一种是很多人按比例的分布在不同商品上,甚至还有其他可能,这里实际上就涉及到了测试方法,与功能测试方法很相似,性能测试也是需要一些常用黑盒测试手段的。最后,你必须得有至少一个混合场景,把之前涉及到的所有的脚本都包括进来,并且根据之前了解的业务来分配实际的用户比例,比如说购买流程中,查看商品详情的用户可能占的比例最高,因此在场景的设置上这一点必须体现出来。混合场景的实际意义在于尽量能够模拟真实的场景,即便单个场景性能良好,也并不能代表混合场景就同样会很好,功能与功能之间是会互相影响,这一点不在这里详述。同时,你得准备你的测试数据,这一点在另外一篇文章已有介绍。
脚本和场景都准备完毕了,开始执行吧,执行也并非简单的操作,同样需要一些思路在里面。在环境搭建完毕,部署完毕,整个业务功能正常的前提下,在第一次系统配置,数据库配置,部署配置等确定之后,开始一次基准测试,每个场景都执行一遍,得出一个此条件下的基础结果,观察结果是否符合预期,如果某些场景的性能不太理想,则涉及到调优。说到调优,这里多说一句,调优绝不是测试人员一个人的职责,并且如果你能耐心看到这里,我相信你也不具备调优的能力,测试的本质就是验证和确认,除非你能力超强可以跨越边界,否则没有必要,项目最终的成败还是一个团队的结果,并非个人能力所致。回到之前的环境部署上,这一步在笔者的实际工作环境中,做的不是非常好,甚至略有混乱,但这一点又却是非常重要的,在测试环境都没有正常的情况下,所有的测试工作都是徒劳白费的!环境部署同样也是需要多方人员协作配合的,如果能拿出对待上线部署那样一半的态度出来,我想事情也不会那么复杂和困难。
经过各位专家对系统的调整之后,可能会有一套比较理想的参数配置,同时,你也会测出一个比较理想的结果,那恭喜你,你的测试通过了,把实际的系统配置,场景,负载情况,性能指标整理一下吧,报告就可以出炉了,项目就安排上线吧,你也可以回家好好休息一下了。