涨薪技术|0到1学会性能测试第94课-全链路脚本开发
至此关于系统资源监控、apache监控调优、Tomcat监控调优、JVM调优、Mysql调优、前端监控调优、接口性能监控调优的知识已分享完,今天学习全链路脚本开发知识。后续文章都会系统分享干货,带大家从0到1学会性能测试。
前面已经讲述了脚本常见的开发技术,但在真实的性能测试过程中,控制器在运行脚本时是很少单独运行某一个脚本的,为了更好的模拟真实的使用情况,一般会将脚本做成链路模式来运行,这样测试出来的业务场景显然会更适合真实的使用场景,所以学会开发全链路脚本是必须要掌握的专业内容。
01什么是全链路性能脚本
在早期的性能测试过程中,其实是没有全链路的概念,早期的性能测试主要是录制后对脚本进行增强再放到控制器中运行,即通常说的GUI的性能测试,就是通过GUI界面进行录制脚本,将前端发送的请求都抓出来,进行性能测试。但随着系统越来越复杂,系统更新迭代的周期又在不断的缩短,所以早期的性能测试很难满足现在性能测试的要求 ,因为如果前端界面发生变化时,就必须重新做性能测试。
所以现在性能测试一般不采用直接录制脚本的方式实现,而是先实现接口性能,保证接口的性能没有问题,这样即使前端修改了结构和样式上的实现方式,一旦出现问题,也仅仅影响前端页面的展示,即常所说的前端优化。但仅有接口性能测试也是不够的,因为这仍然无法满足各类实际应用中的测试需求,通常我们会发现,虽然接口性能测试通过,但功能上线后仍然出现了各种性能问题,此时,性能测试工程师就需要去思考和评估是哪里出现了问题,导致测试结果和上线后的预期结果相差较大。。
为了改进上述遇到的问题,经过反复测试测试的接口其实并不完全是用户的行为,即用户进入系统后的行为是一系列连接的动作,因此,为了更真实和更充分的模拟用户实际使用系统的行为与场景,提出了全链路性能测试的概念,如图6-1就是一个典型的全链路场景。
全链路性能测试就是基于用户的实际使用场景,按照上线的实际运行情况,将业务一个一个的串起来,串成一条链路,然后再对每条链路进行压力测试,如果是系统与系统之间的话,那么就需要将接口串接所有的子系统并完成链路,让交易数据在整个链路上进行流转。
以前性能测试一般都线下环境进行压力测试,即测试时模拟生产环境搭建一个测试环境,在测试环境下进行性能压测,现在不仅仅会进行线上性能压测,也会引流到生产环境下进行全链路压测。
线下压测阶段的压力测试是在测试环境进行的,且主要针对一些重点项目,由于项目的重要性,将会由专职的性能测试专家介入参与并评估。后由于公司的核心业务日益增多,逐步开始在测试环境进行迭代变更回归测试,并形成多版本性能对比评估机制。这种测试手段,难以用测试环境得出的结果评估生产环境的真实容量。
引流压测阶段,随着业务量的不