既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
引言: 随着中国农业银行技术架构的日益更迭与业务场景的不断创新,测试工作正在面临数据构造繁琐、案例维护成本较高且质量参差不齐等诸多问题与挑战,主要体现在以下四方面:
一是在系统架构升级与代码重构时,大量原始接口需要进行回归测试;二是对于逻辑复杂的业务场景,在多版本迭代的过程中,回归测试占据大量时间;三是自动化案例的前期录入与后期维护环节,均需要人工操作干预,人力成本较高;四是在生产环境出现交易异常情况时,问题解决的时效性在很大程度上直接取决于开发人员、测试人员在测试环境中完成问题复现与调试的效率。
综上,通过测试领域新技术的研究与创新,实现测试质量与测试效率的提升,对于当下测试工作的开展有着尤为重要的意义。
01 流量录制回放技术概述
流量录制回放技术可以快速将应用运行过程中产生的接口流量按照一定的过滤规则进行录制。录制的内容包括接口的请求报文以及响应报文,在录制过程中存储的报文可以随时在指定的环境上回放。流量录制回放场景,既可以应用在功能测试阶段,实现回归验证,亦可以应用在版本验证阶段,实现自动交易回归。流量录制回放技术,在简化测试案例编写、提高测试效率、增强测试场景覆盖率等方面,具有重要意义。
图1 流量录制回放过程
根据流量录制的位置,大致可将流量录制回放技术分为以下三类:基于web服务器录制(定制化Web服务器操作系统实现应用请求录制)、基于网络协议栈录制(通过在网卡上监听网络协议端口,采用数据包复制的方式实现请求录制)、基于应用录制(在应用上采用AOP面向切面编程的方式实现请求录制),其优缺点详见下表。
表1 流量录制回放技术对比
02 设计方案
基于日常测试工作中的痛点问题,中国农业银行研发中心天津研发部测试部在2022年7月成立专项任务,采用开源+自研的方式,建设流量录制回放工具,通过应用层录制的方式,实现配置管理、节点监控、流量管理、流量回放执行、批次执行、批次结果分析等功能。
流量录制回放平台主要分为代理模块和管理端模块两部分。代理模块用于监听应用流量,处理回放请求,并将录制和回放信息发送给管理端模块进行处理存储;管理端模块用于进行配置管理、模块管理、录制流量查询和回放等操作。
图2 流量录制回放工具总体架构
流量录制回放工具采用前后端分离的开发架构。用户仅需在应用上安装一个探针,即可实现流量录制回放操作,接入流程与安装过程均简易友好。接入完成后,用户通过访问统一的web端界面,可一站式完成配置创建、流量录制及回放结果查询等操作。
图3 流量录制回放工具运行架构
03 创新功能设计
1.数据分层策略
考虑到在实际使用过程中,应用会产生大量的录制流量,为实现快速查询检索,流量录制回放工具使用Elasticsearch存储在线流量数据和回放结果数据,在百万级数据体量下可实现毫秒级的快速查询响应。同时,使用MySql存储量级较小的管理类数据,使用Redis的队列功能实现批量流量的按序回放。
图4 数据分层示意图
2.批次回放及结果查询功能
批次回放功能可将已录制的流量数据通过人工筛选的方式,添加为一个批次,支持按录制时的调用发生顺序对流量数据进行回放,模拟混合交易场景。适用于以下场景:
①案例的执行存在前后依赖关联,可将有关联的案例添加到一个批次中按序执行;
②执行了一个阶段的案例,包含多种混合交易的大量正向或反向案例场景,可将在一个时间段内执行的流量案例创建为一个批次,按序执行。
图5 批次回放应用场景
批次执行提供批次结果统计以及批次执行通过率趋势展示等功能,帮助测试人员及时了解应用接口执行情况,为测试人员对用例的及时修改与执行提供参考。
图6 批次执行结果统计
图7 批次执行成功率趋势统计
3.报文对比检查点
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
03fab5e56a57acb)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!