相比 Selenium,Web 自動化測試框架 Playwright 有哪些強大的優(yōu)勢?
Playwright 是由微軟的研發(fā)團隊所開發(fā)的一款 Web 自動化測試框架,這個框架具有多平臺、跨語言的特點。除了基本的自動化測試能力之外,同時它還具備非常強大的錄制功能、追蹤功能。以下是 Playwright 與 Selenium 的對比。

由此可見,Playwright 不僅具備 Selenium 多語言、跨平臺、多瀏覽器的優(yōu)點。相較于 Selenium,Playwright 還有更加強大的優(yōu)勢。
Playwright 有哪些優(yōu)點
支持所有流行的瀏覽器。
速度更快,更可靠的執(zhí)行。
更強大的自動化測試配置。
強大的工具庫:
Codegen:通過記錄你的操作來生成測試。 將它們保存為任何語言。
Playwright inspector: 檢查頁面、生成選擇器、逐步執(zhí)行測試、查看點擊點、探索執(zhí)行日志。
Trace Viewer:捕獲所有信息以調(diào)查測試失敗,Playwright 跟蹤包含測試執(zhí)行截屏、實時 DOM 快照、動作資源管理器、測試源等等。
環(huán)境安裝
Python 版本
Java 版本
在 pom.xml 中添加依賴。
創(chuàng)建一個項目
編譯并執(zhí)行(注意:第一次編譯執(zhí)行的時候需要下載對應的依賴,耗時比較久。)
Codegen 錄制功能
Codegen 在啟動錄制的時候,可以針對于不同的場景,設定不同的參數(shù)。比如設置一個特殊的窗口分辨率、顏色主題、指定手機設備等操作。
設定展示窗口大小
通過命令的--viewport-size
參數(shù)可以指定錄制時窗口展示的尺寸。用來測試當指定一個特殊的窗口展示尺寸時,界面顯示是否還正常。

Python 版本命令:
Java 版本命令:
指定設備
通過命令的--device
參數(shù)可以指定錄制時手機的設備型號。用來測試在使用手機瀏覽時,界面展示是否正常。

Python 版本命令:
Java 版本命令:
解決登錄認證問題
通過參數(shù)--save-storage
可以將認證信息保存在一個文件中。在執(zhí)行命令后,會自動啟動窗口,登錄賬號之后,手動關閉窗口。即可將認證信息保存下來:

然后通過--load-storage
參數(shù),可以再次啟動瀏覽器,進入上次登錄后的網(wǎng)站,發(fā)現(xiàn)已經(jīng)登錄成功:

Python 版本完整命令:
Java 版本完整命令:
編寫測試用例
以下為測試人論壇搜索功能的測試步驟,請使用 Playwright 自動化測試代碼實現(xiàn):
打開測試人論壇https://ceshiren.com/。
點擊搜索按鈕。
輸入搜索信息,按下回車鍵。
查看搜索的結果是否包含搜索的信息。
Python 版本的實現(xiàn)
Java 版本的實現(xiàn)
Trace Viewer 追蹤功能
在做自動化測試過程中,常常會碰到的一個痛點問題:自動化測試明明發(fā)現(xiàn)了代碼的 BUG,但是復現(xiàn)比較困難,研發(fā)又不認賬。
碰到這種場景,Playwright 的 Trace 功能可以完美的解決。因為一旦設定了 Trace,代碼執(zhí)行過程中的每一個步驟,都有詳細的截圖,日志,時長的信息,比起功能測試的過程記錄信息還要更加全面。
而且 Trace 的使用也非常簡單,整體來說只需要兩個步驟:
在代碼中添加 Trace 配置。
打開 trace 記錄文件,查看 trace 記錄。
在代碼中添加配置主要注意以下幾點:
通過 browser 實例生成一個 context 實例
通過 context 實例的 tracing 配置啟動參數(shù)
通過 context 實例生成 page 實例對象。并且想要 trace 的操作,必須都使用這個 page 實例對象
在想要結束追蹤的地方,添加 tracing 的結束配置。
Python 版本實現(xiàn)
Java 版本實現(xiàn)
注意:Java 版本需要配置臨時環(huán)境變量PLAYWRIGHT_JAVA_SRC=src/test/java
在執(zhí)行完成之后,查看項目根目錄是否有生成對應的追蹤文件夾。如果正常生成,即可使用以下命令查看 trace 的結果。

掃描下方可領取更多學習資料(無償哦~)
