最近在逛 Github 的時候在 Microsoft 下面看到了這個開源專案 —— Playwright,研究一下之後發現滿有趣的,寫篇文章來向大家報告。
Playwright 是一款模擬使用者操作瀏覽器的自動測試工具,主要優缺點如下:
筆者在短暫的嘗試後發現 Playwright 寫起來真的不錯,成功率比 Selenium 提高、原生支援 C#,且在 Playwright Test Generator 的輔助下只需要修改一小部分,看來有望大大提升整合測試涵蓋的流程!
筆者這幾天將會努力生出 Playwright 在 C# 中的使用介紹,希望有興趣的各位也能嘗試看看,體驗 Playwright 的魅力!
Test Generator,自動產生程式碼的畫面:
參考資料:
Playwright 官網
Playwright Github 主頁
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 主頁
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com