Playwright 可靠的端到端測試

一個與 Puppeteer 類似的端到端(e2e)測試工具。
Playwright 為當(dāng)代 Web 應(yīng)用程序提供可靠的端到端測試。
支持所有瀏覽器
在 Chromium、Firefox 和 WebKit 上進行測試。Playwright 擁有適用于所有當(dāng)代瀏覽器的完整 API,包括 Google Chrome 和 Microsoft Edge(帶有Chromium)、Apple Safari(帶有WebKit)和 Mozilla Firefox。
跨平臺 WebKit 測試。借助 Playwright,使用適用于 Windows、Linux 和 macOS 的 WebKit 構(gòu)建測試您的應(yīng)用在 Apple Safari 中的行為。在本地和 CI 上進行測試。
測試手機。使用設(shè)備模擬在移動 Web 瀏覽器中測試您的響應(yīng)式 Web 應(yīng)用程序。
無頭和有頭。Playwright 支持所有瀏覽器和所有平臺的無頭(無瀏覽器 UI)和有頭(帶瀏覽器 UI)模式。Headed 非常適合調(diào)試,而 Headless 速度更快,適合 CI/云執(zhí)行。
快速可靠的執(zhí)行
自動等待 API。Playwright 動會自動等待元素準(zhǔn)備就緒。這提高了可靠性并簡化了測試編寫。
無超時自動化。Playwright 接收瀏覽器信號,如網(wǎng)絡(luò)請求、頁面導(dǎo)航和頁面加載事件,以消除導(dǎo)致不穩(wěn)定的睡眠超時的需要。
使用瀏覽器上下文快速隔離。將單個瀏覽器實例重用于具有瀏覽器上下文的多個隔離執(zhí)行環(huán)境。
彈性元素選擇器。Playwright 可以依靠面向用戶的字符串(如文本內(nèi)容和可訪問性標(biāo)簽)來選擇元素。這些字符串比緊密耦合到 DOM 結(jié)構(gòu)的選擇器更有彈性。
強大的自動化功能
多個域、頁面和框架。Playwright 是一個進程外自動化驅(qū)動,不受頁內(nèi) JavaScript 執(zhí)行范圍的限制,可以自動化多頁面場景。
強大的網(wǎng)絡(luò)控制。Playwright 引入了上下文范圍的網(wǎng)絡(luò)攔截來存根和模擬網(wǎng)絡(luò)請求。
當(dāng)代瀏覽器功能特性。Playwright 支持 web components、地理定位、權(quán)限、 web workers 和其他當(dāng)代 web APIs.
覆蓋所有場景的能力。支持文件下載和上傳、進程外 iframe、本機輸入事件,甚至暗黑模式。
安裝
Playwright 有自己的測試運行器用于端到端測試,我們稱之為 Playwright 測試。
npm i -D @playwright/test# install supported browsersnpx playwright install
您可以選擇僅安裝選定的瀏覽器
第一次測試
創(chuàng)建 tests/foo.spec.js(或 tests/foo.spec.ts 用于 TypeScript)來定義您的測試。
import { test, expect } from '@playwright/test';test('basic test', async ({ page }) => {await page.goto('https://playwright.dev/');const title = page.locator('.navbar__inner .navbar__title');await expect(title).toHaveText('Playwright');});
現(xiàn)在運行您的測試,假設(shè)測試文件在tests目錄中。
npx playwright testPlaywright Test 剛剛使用 Chromium 瀏覽器以無頭方式運行了一個測試。讓我們告訴它使用有頭瀏覽器:
npx playwright test --headed其他瀏覽器呢?讓我們使用 Firefox 運行相同的測試:
npx playwright test --browser=firefox最后,在所有瀏覽器上測試:
npx playwright test --browser=all