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。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。