Playwright(プレイライト)は、マイクロソフトによって開発された、ブラウザテストおよびWebスクレイピング用のオープンソース自動化ライブラリである。2020年1月31日に公開された。Playwrightは、単一のAPIでChromium、Firefox、WebKitにおけるブラウザタスクを自動化する機能を提供する。これにより、開発者は非ヘッドレスモードだけでなく、自動化のためのヘッドレスモードでも実行可能な、信頼性の高いエンドツーエンドテストを作成できる。PlaywrightはJavaScript、Python、C#、Javaといったプログラミング言語をサポートしているが、そのメインAPIは元々Node.jsで書かれている。ネットワーク傍受や複数のブラウザコンテキストを含むすべての最新Web機能をサポートし、テストの不安定さ(flakiness)を低減する自動待機機能を提供する。
@playwright/test @playwright/test は、Playwright API の上に構築された、Playwright チームによって開発・保守されている Jest ライクなアサーションを備えたテストランナーである。このテストランナーはPlaywrightと緊密に統合されており、特にエンドツーエンドテスト用に設計されている。ブラウザ固有のテスト、テストの並列実行、豊富なブラウザコンテキストオプション、スナップショットテスト、自動リトライなど、多くの機能を備えている。
歴史 Playwrightは2020年1月にマイクロソフトによって発表された。これは、クロスブラウザテストのための統一APIの必要性に応え、Puppeteer、Cypress、Seleniumのような既存ツールの限界を克服するために開発された。以前GoogleでPuppeteerに取り組んでいたエンジニアを含むチームがその開発に貢献した。Playwrightは自動待機、マルチブラウザサポート、ネットワーク傍受などの機能を導入し、現代のWebテストにおいて強力なツールとなった。その誕生以来、活発にメンテナンスされ、Webテストコミュニティで急速な成長と採用が見られている。
@playwright/test ランナーは、ブラウザベースのテストに対してより包括的なソリューションを提供する取り組みの一環として、後にリリースされた。その開発は、Playwright API の潜在能力を最大限に活用し、エンドツーエンドテストをより堅牢かつ簡潔にするための専門的なランナーが必要であるというニーズに主に基づいていた。
使用法と例 Playwrightは主にブラウザタスクの自動化に使用され、単純なページナビゲーションやコンテンツスクレイピングから、自動フォーム送信、ユーザーインタラクションなどのより複雑な操作まで多岐にわたる。例えば、Playwrightを使用した単純なJavaScriptコードスニペットは次のようになる:const { chromium } = require('playwright');
(async () => { const browser = await chromium.launch(); const page = await browser.newPage(); await page.goto('https://example.com'); await page.screenshot({ path: 'example.png' }); await browser.close(); })();この例では、Playwrightを使用してChromiumブラウザを開き、`https://example.com` にナビゲートし、スクリーンショットを撮って `example.png` として保存している。
@playwright/test は、開発者がより構造化されスケーラブルな方法でテストを記述・整理できるテストランナーを提供することで、これらの機能をさらに拡張する。@playwright/test を使用したテスト例は次のようになる:const { test } = require('@playwright/test');
test('basic test', async ({ page }) => { await page.goto('https://example.com'); await expect(page).toHaveTitle('Example Domain'); });この例では、`https://example.com` にナビゲートし、ページのタイトルが "Example Domain" であることをチェックするテストが書かれている。
設定 Playwrightテストは、設定ファイル(playwright.config.js)を使用してカスタマイズでき、以下のような様々なオプションをサポートしている:
テストのタイムアウト設定 失敗したテストのリトライ回数 スクリーンショットおよびビデオキャプチャ設定 ヘッドレスモード設定 テストの並列化オプション
設定例は次のようになる:module.exports = { testDir: './tests', timeout: 30000, retries: 2, use: { headless: true, screenshot: 'only-on-failure', video: 'retain-on-failure', },
デバッグ機能 Playwrightには、以下のような組み込みのデバッグ機能が含まれている:
テスト失敗時にキャプチャされるスクリーンショット テスト実行のビデオ録画 詳細なステップバイステップ分析のためのトレースビューア ブラウザインスペクタを使用したデバッグモード コンソールログとネットワークリクエストの監視
利用傾向 2025年現在、PlaywrightはGitHubスター数が75,000以上、NPMでの総ダウンロード数が2,000万以上、Stack Overflowでの質問数が11,000以上あると報告されている。主要なWebテストフレームワークの中で、コミュニティの採用、GitHubスター、現代的な使用法において最も急速な成長を遂げていると評されている。 +データインサイト (Playwright 2025)ツールGitHubスター数NPM総ダウンロード数StackOverflow質問数初回リリース更新ペースPlaywright75,000+20M+11,000+2020迅速、革新的
脚注
参考文献
外部リンク