Microsoft Playwright TestingはPlaywrightテスト向けのフルマネージドサービスです。エンドツーエンドのテストを自動化してChromeやFirefoxなど様々なWebブラウザ上でWebアプリケーションが期待通りに動作することを確認できます。
Playwrightのテストコードを変更したりツール設定を変更することなくテストをクラウド上で実行できます。通常、Playwrightの同時テスト実行数は実行するホストのCPUコア数の半分が推奨されますが、Microsoft Playwright Testingでは大規模に並行処理を実施することができます。その結果テストを非常に短時間で終了させることができます。
執筆時点(2024/7/26)Microsoft Playwright TestingはPreview機能です。
プレビュー期間中、並列ワーカー数は最大50です。
テスト対象のアプリケーションが大きくなればテストも複雑になり、そしてテストの数も多くなります。それに応じて、テストの完了時間も長くなりがちです。しかし、Microsoft Playwright Testingを使用することによってテストの完了時間を大規模に並列実行することによって大幅に短縮できます。
昨今のWebアプリケーションは様々なOS、たとえばWindowsやmacOSやAndroid、iOSそれにGoogle ChromeやMicrosoft Edge、Firefoxなどのブラウザで完璧に動作する必要があります。こういった環境でしかも絶え間なくアップデートを繰り返してるなかで新旧のブラウザで同時にテストを行うことが可能です。
これまで、CIワークフローでPlaywrightを実行していたのと同様に、構成情報にアクセストークンとサービスエンドポイントを渡すことでMicrosoft Playwright Testingで実行できます。先に書いたとおり、大規模に並列実行することでCIワークフローの大幅な時間短縮を実現できます。
今回は、C#版のPlaywrightで試してみました。TypeScript版でもこちらを参考にテスト実行可能と思います。
前提:Microsoft Playwright Testingワークスペースが作成済みであること、C#のPlaywrightプロジェクトが作成済みでローカルで動作する状態であること
以下の構成情報にアクセストークンを設定する
PLAYWRIGHT_SERVICE_ACCESS_TOKEN
以下の構成情報にエンドポイントを設定する
PLAYWRIGHT_SERVICE_URL
以下のコマンドでテストを実行します。最高50まで並列実行可能です。
dotnet test --NUnit.NumberOfTestWorkers=20
Playwrightの機能としてはスクリーンショット、動画、トレースログなどを取得する機能がありますが、Microsoft Playwright Testingにそれらを保存するストレージがありません。これらのエビデンスが必要な場合は今まで通りMicrosoft Playwright Testingを使わない方法でテストを実行してください。