この記事は「Reqnroll × Playwrightで始めるE2Eテスト入門」シリーズの一部です。
Playwrightとは?Seleniumとの違いをわかりやすく解説
Webアプリケーションの自動テストを行う際、よく使われるツールとして Playwright と Selenium があります。
どちらもブラウザを自動操作するためのツールですが、特徴や使い方に違いがあります。
本記事では次の内容をわかりやすく解説します。
- Playwrightとは
- Seleniumとは
- PlaywrightとSeleniumの違い
- どちらを使うべきか
E2Eテストをこれから始める方はぜひ参考にしてください。
Playwrightとは
Playwrightは Microsoftが開発したブラウザ自動化ツールです。
主に次の用途で利用されます。
- E2Eテスト
- UIテスト
- Webスクレイピング
Playwrightは比較的新しいツールですが、近年はE2Eテストツールとして非常に人気があります。
Playwrightの特徴
Playwrightには次のような特徴があります。
複数ブラウザに対応
Playwrightは以下のブラウザに対応しています。
- Chromium(Chrome / Edge)
- Firefox
- WebKit(Safari)
そのため クロスブラウザテストが可能です。
自動待機機能がある
Playwrightには 自動待機(Auto Wait)機能があります。
例えば次のようなケースがあります。
- ボタンが表示されるまで待つ
- Ajax通信が終わるまで待つ
Seleniumでは手動で待機処理を書くことが多いですが、
Playwrightでは 自動で待機してくれるためテストが安定します。
複数言語に対応
Playwrightは次の言語で利用できます。
- JavaScript / TypeScript
- Python
- Java
- C#
.NET環境でも利用できるため、C#のE2Eテストにも利用できます。
Seleniumとは
Seleniumは 最も有名なブラウザ自動化ツールです。
長い歴史があり、多くのプロジェクトで利用されています。
Seleniumは主に WebDriver を使用してブラウザを操作します。
Seleniumの特徴
Seleniumには次の特徴があります。
長い歴史と豊富な実績
Seleniumは 2004年頃から開発されているツールです。
そのため
- 情報が多い
- 導入実績が多い
- ドキュメントが豊富
というメリットがあります。
多くの言語に対応
Seleniumは多くの言語に対応しています。
例
- Java
- C#
- Python
- JavaScript
- Ruby
そのため様々な環境で利用されています。
PlaywrightとSeleniumの違い
PlaywrightとSeleniumの違いをまとめると次の通りです。
| 項目 | Playwright | Selenium |
|---|---|---|
| 開発元 | Microsoft | Selenium Project |
| 登場 | 2019年 | 2004年 |
| 速度 | 高速 | やや遅い |
| 待機処理 | 自動待機あり | 手動が多い |
| クロスブラウザ | 対応 | 対応 |
| 人気 | 急上昇 | 非常に多い |
Playwrightのメリット
Playwrightの主なメリットは以下です。
テストが高速
Playwrightは内部構造が新しく、Seleniumより高速に動作する場合が多いです。
テストが安定しやすい
自動待機機能があるため、次のような問題が起きにくいです。
- 要素がまだ表示されていない
- Ajax通信が終わっていない
そのため テストが失敗しにくいというメリットがあります。
新しいWebアプリに強い
最近のWebアプリでは
- SPA
- Ajax通信
- 非同期処理
が多く使われています。
Playwrightはこうした モダンWebアプリのテストに強い設計になっています。
Seleniumのメリット
Seleniumにもメリットがあります。
実績が豊富
Seleniumは長く使われているため
- 導入事例が多い
- 情報が多い
- ノウハウが豊富
という特徴があります。
古いプロジェクトでも使われている
多くの既存プロジェクトでは、すでにSeleniumが使われています。
そのため 既存プロジェクトではSeleniumを使い続けるケースも多いです。
PlaywrightとSeleniumどちらを使うべき?
新しくE2Eテストを導入する場合は、Playwrightがおすすめです。
理由
- テストが高速
- 自動待機で安定
- モダンWebアプリに強い
一方、次のような場合はSeleniumも選択肢になります。
- 既存プロジェクトでSeleniumを使用している
- Seleniumのノウハウがチームにある
ReqnrollとPlaywrightの組み合わせ
Playwrightは BDDツールと組み合わせることもできます。
例えば Reqnroll と組み合わせると次のような構成になります。
Featureファイル(Reqnroll)
↓
StepDefinition(C#)
↓
Playwright
↓
ブラウザ操作この構成により 読みやすいE2Eテストを書くことができます。
Reqnrollについてはこちらの記事で解説しています。
→ Reqnrollとは?SpecFlowとの違いと特徴を解説
まとめ
本記事では PlaywrightとSeleniumの違いについて解説しました。
ポイント
- PlaywrightはMicrosoft製のブラウザ自動化ツール
- Seleniumは長い歴史のあるテストツール
- 新規プロジェクトではPlaywrightが人気
E2Eテストをこれから導入する場合は、Playwrightを選ぶケースが増えています。
