功能测试有测试流程,性能测试也同样有测试流程。
图片来源《全栈性能测试修炼宝典jmeter实战》
从上图可以看出,性能测试跟功能测试的测试流程,差异不大。两者最大的差异在于,功能测试只需要准备测试用例,而性能测试需要准备“测试模型”和“压测脚本”。
测试模型:是我们根据业务转换而来的模型,它的准确与否,关系到整个压测的结果是否可行。(比如:在实际场景里面,下单业务包含了各种活动类型,但是你只进行了单一类型的压测,那么出来的结果和你要的结果就有很大不同。没办法保证和线上一模一样的场景,也要保证90%的场景是一致的。)
测试环境的准备:在功能测试中,只需要在对应的测试环境进行测试,所以只要部署应用的环境就行。而性能测试里面,需要准备发起压力的环境,也需要准备被压测的环境。
整个性能测试过程中,一般会有这几个难点:
需求分析
场景设计
性能诊断调优
环境搭建于模拟
需求分析,一般分两种情况:
这是一个新系统,那么只能根据同行的系统做参考。获取对方的用户数、操作行为等,做一个预估。以此做基准参考,对系统进行压测。
系统已经上线,那么可以根据运维或者日志信息,分析数据量、调用情况,以此来获取单点的TPS。用这个标准,做基准,对系统进行压测。
场景设计:
场景设计,依赖于需求分析是否准确,关乎性能测试是否合理。准确的预估用户的行为,才能让设计的场景更真实地模拟系统负载。才能更准确地发现问题,规避上线后出现的问题。
性能诊断调优:
这是一个需要持续性的问题,而且通常也不是一个人能做到的。通常需要一个团队。运维、开发、架构、测试。