使用 Playwright 而非 Selenium 运行 Rails 系统测试

2024 年 6 月 18 日周二,作者介绍了将 Rails 系统测试中的 Selenium 替换为 Playwright 的过程。

  • 背景:UI 测试较脆弱,维护成本高,作者的复杂 UI 烟雾测试在 Selenium 下常失败,作者对 Selenium 不满,开始寻找 Capybara 的适配器。
  • 步骤

    • 安装:移除selenium-webdriver gem,添加capybara-playwright-driver,确保安装正确版本的playwright及相关依赖,可通过script/setup脚本自动安装更新。
    • 测试设置:在test/application_system_test_case.rb中删除与 Selenium 相关的配置,替换为driven_by :playwright,可通过环境变量控制浏览器及是否无头。
    • 设置 CI:在 GitHub Actions 的工作流 YAML 中添加三步来安装和缓存 Playwright 浏览器,减少安装时间。
    • 修复测试:可能会遇到一些 minor issues,如文本节点处理、accept_confirm方法调用等,可参考适配器文档解决。
    • 意识到更稳定:测试稳定性显著提高,失败率从 30%降至 5%以下,更容易重现和调试问题,解决了两个月未解决的问题。
  • 总结:作者是 Playwright 新手,感谢 Capybara 和 Yusuke Iwaki 的工作,虽不能完全克服系统测试失败的问题,但切换到 Playwright 可减少测试失败次数。同时作者推荐订阅其作品、阅读 newsletter 及收听 podcast。
阅读 17
0 条评论