天天看點

微軟Playwright開源自動化架構初探-安裝和調試(java版)

作者:蛋蛋雜談

最近在研究部門的UI自動化架構(java+selenium+testNG+openCV等),發現在調試腳本時,需要先下載下傳谷歌浏覽器。無頭/有頭模式還需要代碼區分。還有一個體驗問題,程式啟動太慢,從運作到浏覽器啟動,差不多需要30s左右,等得有點着急。

在知乎/CSDN中找到多篇文章推薦自動化測試利器-Playwright

建立項目嘗試了下,啟動速度蠻快的。通讀官方api文檔後,發現無論是配置還是運作,優點都很多。下面我們來詳細地介紹下Playwright

一、什麼是 Playwright

微軟開源自動化測試工具Playwright, 支援主流浏覽器,包括 Chrome、FireFox、safari等主流浏覽器, 同時支援以無頭模式、有頭模式運作,并提供了同步、異步的API, 可以結合主流測試架構使用。支援浏覽器端的自動化腳本錄制等功能。

二、Playwright的特點

支援所有浏覽器#

在 Chromium、Firefox 和 WebKit 上進行測試. Playwright 擁有适用于所有現代浏覽器的完整 API,包括 Google Chrome 和 Microsoft Edge (基于 Chromium), Apple Safari (基于 WebKit) 和 Mozilla Firefox.

跨平台 WebKit 測試. 使用Playwright,使用适用于Windows、Linux和macOS的WebKit建構,測試您的應用程式在Apple Safari中的表現。在本地和CI上進行測試。

移動裝置測試. 借助 移動裝置模拟器(device emulation)的移動 Web 浏覽器中測試您的響應式 Web 應用程式

Headless and headed. Playwright 支援所有浏覽器和所有平台的 headless(無浏覽器 UI)和headed(浏覽器 UI)模式。Headed 非常适合調試,而 Headless 速度更快,适合 CI/雲執行。

快速可靠地執行#

自動等待API(Auto-wait APIs). Playwright 操作會 自動等待元素(auto-wait for elements) 準備就緒. 這提高了可靠性并簡化了測試腳本的編寫。

自動化無逾時(Timeout-free automation). Playwright 接收浏覽器信号, 如網絡請求、頁面導航和頁面加載事件, to eliminate the need for sleep timeouts that cause flakiness.

Lean parallelization with browser contexts. 為多個具有浏覽器上下文(browser contexts)的并行、隔離的執行環境重用單個浏覽器執行個體。.

靈活的元素選擇器. Playwright 可以依靠面向使用者的字元串,比如文本内容和可通路性标簽來 選擇元素(select elements), 這些字元串比DOM結構緊密耦合的選擇器更靈活。

強大的自動化能力#

多個域(Multiple),頁面(Pages)和架構 (frames). 是一個程序外自動化驅動程式,它不受頁面内JavaScript執行範圍的限制,可以使用多個多個頁面( multiple pages.)實作場景自動化.

強大的網絡控制. Playwright引入了context-wide network interception to stub and mock network requests.

Modern web features. Playwright supports web components through shadow-piercing selectors, geolocation, permissions, web workers and other modern web APIs.

覆寫所有場景的功能. 支援檔案下載下傳(file downloads)和上傳(uploads), 程序外 iframes, 本地 輸入事件(input events), 甚至是 dark mode.

安裝

我是在idea中新建立的項目,之後的操作都是在idea中

  1. File->new->project
微軟Playwright開源自動化架構初探-安裝和調試(java版)

2.New Project

微軟Playwright開源自動化架構初探-安裝和調試(java版)

需要填寫name , Build system選擇 Maven

3.pom.xml檔案中添加playwright的依賴

<dependencies>

<!-- https://mvnrepository.com/artifact/com.microsoft.playwright/playwright -->

<dependency>

<groupId>com.microsoft.playwright</groupId>

<artifactId>playwright</artifactId>

<version>1.28.0</version>

</dependency>

</dependencies>

這裡強烈建議version填寫為 1.31.0 在寫完1.28.0後,idea會一直詢問是否更新到1.31.0 更新包後再次運作代碼時,會重新下載下傳對應的浏覽器。其實浏覽器還是最新的,但是playwright更新後就會再次下載下傳浏覽器,不如一步到位。

4.Maven的配置

1.填寫Maven檔案夾位址

2.填寫 settings.xml檔案位址

3.填寫 respository檔案夾位址,可以和公司的區分開

微軟Playwright開源自動化架構初探-安裝和調試(java版)

Maven配置完後,是不是感覺和TestNG配置很像?對的,其實都是在pom.xml配置中添加依賴,然後通過MVN來下載下傳對應的包。

微軟Playwright開源自動化架構初探-安裝和調試(java版)

先clean 然後 compile

微軟Playwright開源自動化架構初探-安裝和調試(java版)

好了,所有的配置都完成了,是不是很簡單?

今天先到這裡,明天我們再寫代碼來啟動浏覽器