接口自动化测试平台的迭代是一个关于成长的故事

接口自动化测试平台的迭代是我们迈向技术成熟和高效开发的必经之路。在如今高速发展的互联网公司中,接口自动化测试平台已成为质量保障的核心支撑,特别是随着业务复杂度和规模的急剧增长,自动化测试成为保障项目稳定性和快速迭代的重要基石。本篇文章将重点讲述平台在迭代过程中遇到的挑战及我们是如何逐步攻克这些技术难题的。从应对多环境部署的难题,到显著提升测试效率和质量反馈,小标题均来自苏轼,分别来自苏轼不同人生时期的创作。当眉间少年走出大山,当平台诞生之后经历周遭变革,成长是永恒的主题,整体内容分为九章:

  • 第一章 迭代背景:此生初饮庐山水
  • 第二章 方案采集:当年踏月走东风
  • 第三章 平台借力:自驾飞鸿跨九州
  • 第四章 任务运行:浩浩长江赴沧海
  • 第五章 稳定治理:魂惊汤火命如鸡
  • 第六章 拆分提速:不问秋风强吹帽
  • 第七章 报告呈现:觉来满眼是湖山
  • 第八章 过去未来:人生所遇无不可
  • 第九章 初心回归:此心安处是吾乡

第一章 迭代背景:此生初饮庐山水

有了自动化平台之后,我们陆续发现平台一些功能虽然有,但是如果优化之后,提效会很明显。之前虽然有水可以解渴,但是初次尝过庐山水之后,就对原来的水有更高的标准。我们在初次尝试过通过将接口自动化项目进行Jar包改造提速效果明显后,就对之前先构建再运行的模式感到焦急;初次体验过Klov+ExtentReport的自动化报告的现代化管理模式后,就对之前Jenkins+TestNG的组合感到哀伤;初次见识过自动化测试结合精准测试的受影响接口推荐和被测业务的链路图所展示的更为广阔的图景之后,就对之前孤立的自动化测试感到无助。

经过我们的迭代后,目前接口自动化平台的主要功能如下:

第二章 方案采集:当年踏月走东风

2.1 环境隔离问题:

在我们的项目中,需要同时支持两个完全不同的环境。第一个环境是与现有环境完全隔离的测试环境,网络被严格分割,无法直接打通。第二个环境是国外云提供的环境,涉及跨云部署。这种网络隔离对日常工作流造成了严重影响:

  • 团队协作困难:测试团队无法在同一个环境中进行协作,导致工作流断裂,信息同步困难,很多问题在一个环境中解决后,还需要重新部署到另一个环境中进行重复测试,耗时耗力。
  • 部署复杂性增加:跨云和网络隔离的问题导致现有的自动化平台无法轻易扩展到这些新环境中,团队需要耗费大量时间手动配置环境,重复部署工作,增加了部署的复杂性和出错率。
2.2 自动化运行提速的需求:

随着测试项目的规模扩大,自动化测试用例的数量激增,测试的运行时间也随之大幅增加。自动化测试项目原本设计用于较小规模的应用,但随着业务的扩展,测试任务的执行时间从原来的几十分钟延长到几个小时。这对生产发布的影响尤为严重:

  • 上线延误:自动化测试逐渐成为项目上线的瓶颈,每次发布前都需要等待漫长的测试结果,导致发布周期不断延长,项目无法及时响应市场需求。
  • 测试资源浪费:大量的冗余测试执行浪费了宝贵的测试资源,特别是在峰值时期,自动化测试结果迟迟无法反馈,严重影响了整个团队的工作进度。
2.3 质量判定的困境:

自动化测试的质量评估成为了项目成功的关键之一。然而,随着测试用例的数量不断增加,如何准确、快速地评估测试的质量成为了一大难题:

  • 主观性判断增加 风险:过去依赖开发和测试人员通过手动分析测试结果来判断质量,这种方式不仅主观性强,而且容易出现误判,特别是在业务复杂度增加时,潜在的问题常常被忽视,直至问题影响到生产环境。
  • 延迟反馈导致问题升级:由于没有实时反馈机制,测试完成后才能发现问题,这种延迟反馈的方式使得有时在上线后才会发现重大问题,进而导致紧急回滚和修复,增加了生产中的不稳定性。

通过深入分析这些问题,我们认识到,不解决这些根本性的瓶颈问题,自动化平台的有效性和效率就无法真正发挥作用。

针对上述三个主要问题,我们根据自身情况进行了深入分析,通过方案调研、工具对比以及跨部门协作,最终确定了以下解决方案:

  1. 网络隔离问题的解决:对于无法打通网络的环境,我们部署了新的Rancher和Kubernetes集群,并将各类服务集成到新集群中。对于可以打通网络的环境,我们推动运维部门打通网络连接,随后将集群节点部署到主Rancher系统中,实现统一管理和调度。
  2. 自动化运行提速:原有的自动化流程包括编译构建、运行用例和报告生成三步。我们在编译构建和报告生成两个阶段进行了优化,通过并行化和资源调度,将这两个环节的耗时从分钟级大幅缩短至秒级,显著提升了测试运行效率。
  3. 精准测试标准的建立:我们引入精准测试理念,通过分析代码变动,自动推荐受影响的接口,并要求对这些接口进行全量覆盖。精准测试的核心在于基于业务服务的变更范围进行覆盖,从而有效减少冗余测试,并确保自动化用例的精准性与及时性。此外,测试结果会在每次触发后即时生成并推送,大幅提高了反馈速度。

第三章 平台借力:自驾飞鸿跨九州

3.1 通过搭建集群扩展自动化平台受众:

由于货拉拉业务的多样性,我们在国内货运、国际化以及小拉等多个业务板块中,涉及到不同的业务环境,这些环境都是相互独立的。为了快速支持这些不同的业务,我们需要一种高效的方式来将现有集群能力快速复制到新环境中。

3.1.1 环境独立性与挑战:

货拉拉的业务线广泛,包括国内货运、国际化业务和小拉等独立板块。每个板块都有独立的业务需求、数据存储和API接口。这种独立性带来了部署和维护的复杂性,尤其在集群能力扩展时,如何快速在新业务环境中实现现有集群的能力是一个关键问题。

3.1.2 集群能力快速复制的需求:

为了更好地支持不同业务的独立发展,我们需要一种方法,可以将一套经过验证的集群架构和配置快速部署到其他业务环境中,以确保稳定性和高效性。目标是:

  • 快速复制:能够在短时间内将现有的基础架构复制到新的环境。
  • 一致性:确保不同环境中集群配置的稳定性和一致性,避免人为差异导致的故障。
  • 弹性扩展:能够根据业务需求,灵活调整每个环境的集群资源,确保不同业务的资源利用最优。

3.1.3 整体效果:

通过这种集群能力的快速复制方案,我们可以大幅缩短新环境的部署时间,并确保每个业务线都能享受到一致的集群架构和性能支持。无论是国内货运、国际化还是小拉业务,集群能力的复制都能够快速响应业务扩展需求,确保系统的高效稳定运行。

3.2 使用准入准出流程提高自动化有效性:

在当前的准出阶段中,设置了严格的卡口机制,确保业务服务对应的接口自动化测试用例必须全部通过,才能进入发布流程。这种做法将编译打包和部署后的质量检查前置,利用准出阶段的自动化测试结果作为发布的硬性标准。通过这种方式,确保每次发布的服务版本都经过严格的自动化验证,从而大幅提升了发布的质量和稳定性,减少了潜在的生产问题和风险。

3.3 利用精准测试提高接口自动化覆盖度:

在经过广泛的调研和与一线公司的同行深入交流后,我们针对自身的情况进行了深入思考,并决定迭代优化接口自动化覆盖度,具体通过精准测试技术和思想进行提升。

优化思路:

  1. 调研结果与挑战:在一些公司中,精准测试的应用范围较为有限,主要用于缩短自动化测试的运行时间。这种方式往往适用于测试用例可以覆盖所有接口的场景,或用例之间关联性较低。然而,面对货拉拉所有业务线,各个部门的自动化建设进度和水平参差不齐。部分项目中,自动化用例的关联性较高,使用精准测试运行时,由于接口推荐的独立性,导致运行结果不理想。
  2. 优化策略:鉴于上述挑战,我们决定不完全照搬其他公司精准测试的方式,而是结合自身的需求,采用精准测试的技术和思想。首先,我们要建立统一的自动化测试标准,将各部门的自动化建设水平拉齐,确保所有业务线的基础自动化能力一致。其次,在面对用例关联性较高的项目时,我们灵活调整策略,避免单纯依赖推荐接口的独立性,而是根据实际情况优化测试用例的关联性处理。

3.4 凭借任务管理平台跟进用例完成:

通过任务管理平台对未覆盖接口的精准拦截与任务跟进,我们大大提升了接口自动化测试的闭环管理。当系统检测到某个接口未被测试用例覆盖时,平台会自动生成一条待办任务,提示测试人员需要补充该接口的自动化测试用例。该任务将列入工作流,确保及时跟进。

补充用例的过程也实现了自动化管理。当新的自动化测试用例补充完毕并提交后,平台会自动扫描该接口的状态,验证是否已覆盖到位。一旦确认覆盖,该待办任务将自动标记为完成,无需人工干预。这一流程不仅实现了任务跟踪的全自动化,还确保了测试覆盖的全面性和及时性,为自动化测试的高效管理奠定了坚实的基础。

最终,这种机制确保了每个接口的自动化用例都能快速补充并完成,2024年度已累计完成1000+自动化用例待办,极大地减少了人为疏漏的可能性,同时大幅提升了团队的工作效率和测试覆盖率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值