
在全球成千上万的教室中,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 文化的根本转变。”