Playwright 瀏覽器自動測試工具(跨平台、多語言)

最近在逛 Github 的時候在 Microsoft 下面看到了這個開源專案 —— Playwright,研究一下之後發現滿有趣的,寫篇文章來向大家報告。


Playwright 是一款模擬使用者操作瀏覽器的自動測試工具,主要優缺點如下:

優點

  • 跨平台: 支援 Windows、Linux 和 macOS
  • 跨瀏覽器: Chromium、Firefox 和 WebKit
  • 多語言支援: TypeScript, JavaScript, Python, .NET(C#), Java
  • 穩定、簡單、會自動重試,不用和隔壁 Selenium 一樣需要一直「wait」,也不需要手動設定 WebDriver
  • 方便快速的錄製網頁動作工具,直接輸出為各語言的程式碼
  • 文件較完整和易讀,官方還有提供 GitHub Actions, Jenkins ...等 9 大主流 CI/CD 整合示範
  • 可以在 Selenium Grid Hub 上測試 Chrome 或 Microsoft Edge 瀏覽器
  • 微軟富爸爸(是優點也是缺點),有錢,有支援

缺點

  • 不支援手機 (可以模擬手機螢幕尺寸)
  • 不支援 Safari (Apple Safari 底層是 WebKit,但還是不太一樣,或許可以比喻為 Chrome 和 Edge,可以參考 StackOverflow 討論)
  • 是微軟主導(?),擔心被放生。別的不談,就本 Playwright 的附加工具 playwright-cli 工具就不再維護 (已直接移至 npx playwright)
  • 使用人數不夠多,市場上大多數 E2E Testing 還是 Selenium

結尾

筆者之前在寫整合測試都是使用 Selenium,但是重複的語法(基本上每個都需要加上 wait 變得很冗長很不簡潔)、過高的失敗率都讓筆者心力憔悴。雖然在遇到 Selenide 後有所改善,但 Selenide 基本上只支援 Java(用特殊的方式也是有辦法支援其他語言),但還是時有失敗的測試。
筆者在短暫的嘗試後發現 Playwright 寫起來真的不錯,成功率比 Selenium 提高、原生支援 C#,且在 Playwright Test Generator 的輔助下只需要修改一小部分,看來有望大大提升整合測試涵蓋的流程!

筆者這幾天將會努力生出 Playwright 在 C# 中的使用介紹,希望有興趣的各位也能嘗試看看,體驗 Playwright 的魅力!

Test Generator,自動產生程式碼的畫面:



參考資料:
Playwright 官網
Playwright Github 主頁

留言