按照生产环境的情况做一定比例的缩放,例如生产环境的数据量为1亿条,那么测试环境等比缩放到5000w条,生产环境的处理速度的情况...;
2、更差环境、更高压力的测试
采取比生产环境更差的机器配置、网络环境来进行测试,例如ebay的要求是能够承受10x的压力。
3、仿真测试
据资深人士而言,仿真测试要做到基本是不太可能的,仿真测试首先要求的是收集到生产环境中的运行状态的数据,然后在测试环境中编写程序来做到模拟生产环境运行的效果,这个难度基本是非常高的。
我自己现在做压力测试更多采取的做法是以上三种方法的合集。
在确定了测试方法后,就基本可以确定压力测试的环境了,环境确定好后需要做的是压力测试的案例或场景了,在压力测试的案例中需要涵盖正常场景以及异常的场景,正常场景是非常容易做出来的,只是需要根据生产环境收集的数据(例如不同级别的用户比例通常是7:2:1)或预估的数据来搭建相应的测试案例,异常场景则是比较复杂的,需要考虑很多的因素,例如数据库出现异常、网络出现异常等,这里我觉得通常的做法是画出正常场景的处理流程,然后划分交互边界的信任边界,对于所有的第三方交互都认为是不可信任,例如不能信任调用数据库是一定会快的,或一定会成功的,在异常场景中应涵盖这些信任边界的异常状况的测试,这些对于高可用性的系统而言是非常重要的,几个9的成败就在此了,当然,高可用性又是个更复杂的话题,不在这里讲。
在压力测试方案中还需确定的是考评的指标,通过会包括:tps、系统load等等。
进行压力测试
相对来讲,在有了压力测试方案后,这一步并不是什么太复杂的事情,只是需要选择一个和压力测试方案比较符合的工具来执行,例如jmeter、loadrunner等,当然,这些工具相对来说也是比较复杂的,而且之间的差距也是比较大的,至少目前来看,jmeter和loadrunner的差距还是不小的,尤其是需要进行高压力的测试时。
文章来源于领测软件测试网 https://www.ltesting.net/