PFLB

自动Ui全球十大赌博靠谱的平台

全球十大赌博靠谱的平台的客户端是一个社交约会应用程序,在全球范围内的认可和存在超过100个国家.
它是一个非常成功的社交媒体应用,拥有数百万的订阅者和每天超过10亿的点击量, 客户的工程团队过去和现在都面临着在Android上发布定期软件更新的挑战, iOS, 和Web平台,同时保持高质量标准,以满足其常规用户.

每个版本的变更率急剧增加,而产品通过A/B全球十大赌博靠谱的平台推出新想法,因此只有 手动功能全球十大赌博靠谱的平台 不能满足两周发行.
In 2016, PFLB被要求与内部工程团队合作,建造当时是, 使用自动化ui全球十大赌博靠谱的平台工具的本地全球十大赌博靠谱的平台自动化解决方案——新引入的用于iOS的XCUITest库和用于Android的Espresso库.

只有手工全球十大赌博靠谱的平台不能满足每两周发布一次的需求,因为更改的速率是 大幅增加 而新想法则通过A/B全球十大赌博靠谱的平台进行推广.

结果是:

  • 大约20%的功能全球十大赌博靠谱的平台用例是自动化的
  • 完全回归时间缩短了约30%
  • 自动化客户端分析几乎在每个版本中都能找到P0/P1的bug(手动全球十大赌博靠谱的平台非常耗时)

在全球十大赌博靠谱的平台的团队开始与开发者进行CI战斗之前,全球十大赌博靠谱的平台似乎已经取得了成功.
让全球十大赌博靠谱的平台来看看一个典型的CI架构:

带有预合并全球十大赌博靠谱的平台的CI(经典案例):
  • 带有应用程序代码库的GitHub仓库
  • 詹金斯CI
  • 每个PR及其连续提交触发了对PR分支的检查链,其中包括但不限于代码编译, 单元全球十大赌博靠谱的平台, 代码样式验证
  • 上面描述的检查正在阻止PR合并-如果上面列出的检查之一失败, 在这个问题解决之前,PR部门不会合并到主要的开发部门.  

挑战:

为Android/IOS存储库添加UI自动化全球十大赌博靠谱的平台,以与其他检查编译一起运行, 单元全球十大赌博靠谱的平台, 对每个Pull Request进行lint处理

问题:

01

UITests由于其性质可能是薄的. 不稳定可能取决于许多因素——设备上的USB连接、互联网连接

02

应用程序中不断的UI更改会导致UITest失败,并需要在全球十大赌博靠谱的平台代码中不断更新

03

因为全球十大赌博靠谱的平台使用的是原生全球十大赌博靠谱的平台框架(Espresso, XCTest)用于编写快速可靠的iOS和Android UI全球十大赌博靠谱的平台, 这些全球十大赌博靠谱的平台与应用程序的代码驻留在同一个存储库中. 因此,当开发者进行PR并中止其中一个或多个全球十大赌博靠谱的平台时, 更改全球十大赌博靠谱的平台或排除坏全球十大赌博靠谱的平台将需要提交或另一个PR. 因此,所有的检查都需要再次运行,这非常耗时. 不只是开发人员被阻碍了,而且也被激怒了,因为他可能会改变UI流程,这使得UI Test对这种变化做出反应(假阳性)。不高兴和激怒的开发人员显然会反对以合并前的方式运行UI全球十大赌博靠谱的平台,并会争取移动UI Test到合并执行后.

全球十大赌博靠谱的平台协调器

检疫

全球十大赌博靠谱的平台用例数据(Jira, Testrail)

自动化UI全球十大赌博靠谱的平台全球十大赌博靠谱的平台协调器

远程全球十大赌博靠谱的平台包含/排除

最新全球十大赌博靠谱的平台的完整列表

解决方案:

全球十大赌博靠谱的平台协调器—用于在CI中管理全球十大赌博靠谱的平台的框架.

1.

在不更改源代码的情况下启用/禁用特定自动化全球十大赌博靠谱的平台的能力. 如果由于开发人员变更或其他原因导致全球十大赌博靠谱的平台失败, 可以从主全球十大赌博靠谱的平台池中快速禁用一个来解除阻塞CI. 编配器可以同时使用Unit和uitest!

2.

隔离是全球十大赌博靠谱的平台协调器的另一个功能. 新添加的全球十大赌博靠谱的平台在添加到CI全球十大赌博靠谱的平台池之前必须连续通过10次. 同样的规则也适用于更新/固定的全球十大赌博靠谱的平台. 这样的特性消除了CI的单薄性!

用例:

01

由于UI更改,在CI中全球十大赌博靠谱的平台失败. 开发人员受阻,虽然他没有明确刹车全球十大赌博靠谱的平台. 自动化团队或开发人员自己将从test Orchestrator的web门户禁用全球十大赌博靠谱的平台,同时为自动化团队打开一个新的Jira任务来处理全球十大赌博靠谱的平台修改.

检疫

自动UI全球十大赌博靠谱的平台隔离

02

由于开发人员在Pull Request中引入的实际错误,全球十大赌博靠谱的平台失败. 在检查了一个新bug之后,产品团队决定在下一个sprint中修复它. 开发人员或QA工程师将执行以下操作:

a.

开发人员或QA工程师从test Orchestrator网站门户禁用全球十大赌博靠谱的平台,并链接Jira bug以供参考.

b.

当缺陷被修复时, 全球十大赌博靠谱的平台的状态得到更新,并移动到隔离作业进行验证.

结论:

回顾这个项目所做的所有工作,全球十大赌博靠谱的平台可以肯定地说它是成功的. 尽管要处理不断变化的应用程序,并且在非常紧迫的截止日期前工作, 全球十大赌博靠谱的平台不仅成功地编写和运行了多个全球十大赌博靠谱的平台用例, 但是也要认识到过程中变更的需要和重要性,并随后提出一个解决方案,消除与全球十大赌博靠谱的平台自动化相关的许多问题.

所有这些都帮助全球十大赌博靠谱的平台的团队认识到详细规划的重要性, 特别是在项目的早期阶段. 除了, 在一个跨越不同时区的跨国团队中工作,特别是在紧迫的截止日期前,全球十大赌博靠谱的平台都有机会使用敏捷方法工作,并专注于为客户提供最终产品的质量. 在做这些事情的过程中, 全球十大赌博靠谱的平台不仅帮助交付了更好的产品或改进了一些指标, 但全球十大赌博靠谱的平台的团队也在努力学习和成长.