稳定性测试,性能测试,压力测试
稳定性测试法、压力测试法和性能测试法是存在一定关系的,这个关系纽带就是产品规格。
产品规格:产品承诺的能够处理的最大容量或能力。例如,系统最多支持100个用户并发登录、系统最多支持建立100条安全策略就是产品规格。
我个人直白的理解就是:
稳定性测试,是在低于产品规格时,对产品进行多次或并发的测试,也就是我们通常情况下的测试,比如说,多次,反复,并发的,对一个功能来来回回的测试,还有异常情况的测试,还有把这些情况组合在一起各种测。
性能测试,是在接近,靠近,再或者和产品规格一致时的测试。
压力测试,是在偶尔高于产品规格时的测试,比如说啊,现在双十一快到了,双十一零点的时候,付款功能,就类似于压测(偷笑),偶尔的高于产品规格,淘宝也没爆,大家还是可以该逛逛,该加购物车加购物车,该看直播看直播(斜眼笑)
以下是摘自《测试架构师修炼之道》,他是这么描述的:
- 性能测试的目的就是测试产品真实规格是否和说明书中承诺的需求规格一致。显然,最后我们实测出来的性能值,就是系统真正能够处理的最大容量或者能力。
- 稳定性测试是在低于性能值的前提下测试的。事实上,用户在使用系统时,也不会时时刻刻让系统在极限的状态运行,在测试时,我们可以控制测试中的负载量,使其和用户的实际使用情况尽量接近,使得测试能够更为准确,更有价值。
- 压力测试是在高于性能值的前提下进行测试的。虽然测试时负载超过了系统能够处理的最大能力,但并不等于在这种情况下系统的功能都会失效,我们需要根据实际情况来分析系统的表现是否合理。例如,系统最多支持100个用户并发登录,但此时有110个用户同时发起了登录的操作,那么系统应该保证这110个用户中有100个用户能够正常登录,有10个用户不能登录才合理,而不是所有用户都不能登录。
上面这个图是针对压力测试的负载举例。压力测试的必要性在于,业务的突发现象,用户的业务负载并不是平均的,可能在极短时间里,出现超过负载的情况,但是平均下来,却没有超过规格。已上图为例,假设说周期是五分钟,在一个周期里,前4分钟都是一个通常使用的产品规格,突然的第5分钟,它就大于产品规格了。整个产品是否能正常进行,爆不爆,瘫不瘫。
也有这样的,这种又叫恢复测试法。持续超过规格的负载进行测试,再将负载降到规格以内的测试方法。