以前,我们执行端到端的测试套件需要几个小时的时间。现在使用我们在 AWS 上构建的解决方案,时间缩短至 30 秒。我们已将此功能推广至旗舰应用程序,目前正在整个组织中部署。这是向持续集成的 DevOps 文化的根本转变。
Jason Kagel Vice President of Productivity, Blackboard (now part of Anthology)

在全球成千上万的教室中,Blackboard(现为 Anthology 的一部分)教育技术支持教学、协作和在线学习。2015 年,该公司开始将其 Blackboard Learn 应用程序的软件即服务 (SaaS) 版本迁移到 Amazon Web Services (AWS) 云。从那时起,该公司一直在积极采用 AWS 技术来推进其创新议程。

测试是该价值链的关键部分。为帮助学生学习和教师教学,Blackboard 必须提供集成、直观、一致的用户体验。这意味着进行体验式测试,模仿用户在任何给定网络浏览器中如何浏览应用程序。起初,这家公司是手动进行这些测试的,这意味着每次测试可能需要几天的时间。2007 年,该公司开始使用 Selenium WebDriver 进行自动跨浏览器用户界面测试,这极大地加快了测试过程。

从那时起,Blackboard 就转向了持续交付方法,这意味着每次对代码分支提交更改时,都会触发测试套件。该公司需要进一步提高测试速度。公司首先实现了 Selenium Grid,使打包在 Docker 容器中的测试套件能够并行执行,从而将测试执行时间缩短至 16 分钟。但是,这种配置无法轻易扩展到八个并发线程以上。

然后,团队决定将测试套件打包到 AWS Lambda 无服务器计算函数中,使其能够以所需的任何规模并行执行测试。自定义 JUnit 测试运行器触发测试并汇总结果。Blackboard 生产力副总裁 Jason Kagel 说道:“这不仅仅是自动化单元测试,我们还在进行端到端的自动化用户体验测试。”“使用 AWS Lambda,我们可以更快地为客户创造价值,并确信应用程序将为用户实现无缝运行。”

该解决方案不仅可以进行更深入的测试,而且还缩短了测试时间。Kagel 说道:“以前我们执行端到端的测试套件需要几个小时的时间。”“现在使用我们在 AWS 上构建的解决方案,时间缩短至 30 秒。我们已将此功能推广至旗舰应用程序,目前正在整个组织中部署。这是向持续集成的 DevOps 文化的根本转变。”