はじめに
ブラウザアプリのE2Eテスト(UIテスト)のテスト自動化ツールの選定にあたり、要件の1つになるであろうサポートブラウザとプログラミング言語のまとめです。(2021年12月時点)
各公式サイトや、既存のツール比較やツール一覧の数々を読めば欲しい情報を得られます。しかし、「このツールが入ってない」「Chrome、Edge “など” の “など” が知りたい」「公式サイトのどこに書いてあるの?」を繰り返してきました。そこで今回は、最近よく目にするツールや、以下のまとめに登場したツールから8種を選び、要件別にまとめました。
まとめたい要件が増えたら追加する予定です。
調査対象
- 有償ツール 3種(SaaSで提供されるAI自動テストツール)
- Autify
- mabl
- Magic Pod
- OSS 5種
- Playwright
- Puppeteer
- Selenium(Webdriver)
- Cypress
- Testcafe
SPブラウザの調査
全てChromeのモバイルエミュレーション機能を利用できるかどうかを調査しています。
実際のモバイル端末上で動作するわけではないため、自動テストに用いる場合は以下の点に注意が必要です。
- モバイルのブラウザアプリ特有の動作はテストできない
- 例えば、Safariの検索窓を使う、Safariのブックマーク機能を使うなど
- モバイル端末のOSやハードウェアに起因する動作のテストはできない
ネイティブアプリとしてテストしたい場合は別のツールを使うか、同ツールがモバイルアプリに対応している場合はそちらを使いましょう。(参考:ブラウザテスト実践ガイド – Magic Pod)
※モバイルエミュレーション機能はChromeの開発者ツールから触ることができます
サポートブラウザまとめ
有償ツール
有償ツールの実行環境の種類は次の3パターン。プランや実行単位によってサポートが異なるため、後述の注意もご覧ください。
-
△クラウド
- 各サービスが用意するクラウド環境または提携する外部デバイスファーム上のOS上で対象のブラウザが立ち上がります。
- クラウド環境のメリットは、並列実行ができること。
-
▲ローカル
- 実行用のPC端末に対象のブラウザをインストールしてテストを行います。
- ローカル環境のメリットは、高速で実行できることと、実際の動作を目視で見れてFail調査がしやすいこと。
-
✓
- クラウド環境、ローカルPCの両環境での実行が可能です。
Autify | mabl | Magic Pod | |
---|---|---|---|
Chrome | △クラウド | △クラウド | ✓ |
Edge(Chromium) | △クラウド | - | ▲ローカル |
Firefox | △クラウド | △クラウド | ▲ローカル |
Safari | △クラウド | △クラウド | ▲ローカル |
IE11 | △クラウド | △クラウド | ▲ローカル |
Safari/iOS | △クラウド | △クラウド | ✓ |
Chrome/Android | △クラウド | △クラウド | ✓ |
※注意
- Autifyとmablは、料金プランによって利用できるブラウザに制限があります。
- Magic Podは、外部デバイスファーム(BrowserStack, SauceLabs)を別途契約することで、デバイスファームのブラウザ上でもテスト実行できます。
- 実際の利用を想定し、表には複数のテストケースを一括実行する場合のサポートブラウザを記載しています。1つのテストケースのみを実行する場合は下表の通り。作成したテストケースを通しで試してみたい場合や、デバッグ時に利用します。
※参考:1つのテストケースのみを実行する場合
Autify | mabl | Magic Pod | |
---|---|---|---|
Chrome | ✓ | ✓ | ✓ |
Edge(Chromium) | △クラウド | - | ▲ローカル |
Firefox | △クラウド | △クラウド | ▲ローカル |
Safari | △クラウド | △クラウド | ▲ローカル |
IE11 | △クラウド | △クラウド | ▲ローカル |
Safari/iOS | ✓ | △クラウド | ✓ |
Chrome/Android | ✓ | △クラウド | ✓ |
OSS
Playwright | Puppeteer | Selenium | Cypress | Testcafe | |
---|---|---|---|---|---|
Chrome | ✓ | ✓ | ✓ | ✓ | ✓ |
Edge(Chromium) | ✓ | ✓ | ✓ | ✓ | ✓ |
Firefox | ✓ | ✓ | ✓ | ✓ | ✓ |
Safari | ✓ | - | ✓ | - | ✓ |
IE11 | - | - | ✓ | - | ✓ |
Opera | ✓ | - | ✓ | - | ✓公式サポート外 |
electron | - | - | - | ✓ | - |
Safari/iOS | ✓ | - | ✓ | ✓ | ✓ |
Chrome/Android | ✓ | - | ✓ | ✓ | ✓ |
プログラミング言語まとめ
※1:ステップとして記述可能
Autify | mabl | Magic Pod |
Playwright | Puppeteer | Selenium | Cypress | Testcafe | |
---|---|---|---|---|---|---|---|---|
ノーコード | ✓ | ✓ | ✓ | - | - | - | - | - |
JavaScript | ※1 | ※1 | - | ✓ | ✓ | ✓ | ✓ | ✓ |
Python | - | - | - | ✓ | - | ✓ | - | - |
Java | - | - | - | ✓ | - | ✓ | - | - |
TypeScript | - | - | - | ✓ | - | - | - | ✓ |
Ruby | - | - | - | - | - | ✓ | - | - |
.NET | - | - | - | ✓ | - | - | - | - |
C# | - | - | - | - | - | ✓ | - | - |
CoffeeScript | - | - | - | - | - | - | - | ✓ |
参考
「公式サイトのどこに書いてあるの?」という私のような人へ。表にするとかえって見づらかったので箇条書きです。
-
- Browsers
- Puppeteer vs Playwrigh