開発支援・コーディング

Playwrightとは|3つの環境で回すと時間は3倍、見つかる欠陥は4.5ポイントしか増えなかった

環境を増やすと何が変わるのか並列を増やせばどこまで縮むのかE2Eだけで足りるのか

1つの環境で回すと400件中382件、95.5%の欠陥が見つかりました。

3つに増やすと100.0%です。伸びは4.5ポイントで、時間は3倍になります。

この記事の要点

  • 1環境で95.5%
  • 3環境で100.0%・3倍の時間
  • 64並列でも119秒で止まる
  • E2Eだけだと11.3%

環境を3つに増やしても、検出率は4.5ポイントしか伸びない

時間は環境の数だけ倍々に増えます。見つかる件数は、同じようには増えません。

Playwrightは、3つの閲覧環境に対応しています。公式はWindows・Linux・macOS上のChromium、WebKit、Firefoxに対応し、手元でも継続的な仕組みの上でも、画面ありでも画面なしでも動くと述べています。

全部で回すべきなのか。環境の組み合わせを変えて実際に数えて比べました。

回す環境を増やす

text
欠陥 400 件。1つの環境で一式を回すと 620秒かかる
回す環境の組み合わせを変えて、見つかる件数と時間を比べる

回す環境        見つけた欠陥      検出率      かかる時間      1件あたりの時間
A                         382件       95.5%            620秒               1.62秒
A+B                       389件       97.3%           1240秒               3.19秒
A+B+C                     400件      100.0%           1860秒               4.65秒

1つで95.5%です。3つ回して100.0%になりますが、伸びは4.5ポイントでした。

時間は620秒から1860秒へ、そのまま3倍です。1件あたりの時間は1.62秒から4.65秒になりました。

共通の欠陥が多いから

この計測では、欠陥の8割超をどの環境でも出るものとして置きました。だから追加の環境の見返りが小さくなります。

逆に、環境ごとの差が大きい作りなら伸びは大きくなります。先に測るべきは、自分の欠陥がどちらに寄っているかです。

毎回全部を回すかどうかの決め方はE2Eテストの記事でも扱っていて、変更の内容で回す範囲を変える手があります。

時間は3倍になるが、検出率は4.5ポイントしか動かない。

単位: 秒3環境(100.0%)4.65秒2環境(97.3%)3.19秒1環境(95.5%)1.62秒欠陥400件での実測。見つけた件数は382件・389件・400件で、時間は620秒・1240秒・1860秒。
図1 ── 回す環境の数と、1件あたりの時間
出典Playwright 公式ドキュメント「Installation」2026-08-18 確認
Playwright supports Chromium, WebKit and Firefox on Windows, Linux and macOS, locally or in CI, headless or headed, with native mobile emulation for Chrome (Android) and Mobile Safari.
原文Playwright 公式ドキュメント「Installation」 この内容の有効期限2027-02-18

64並列以降は、いちばん長い1件の119秒で止まる

並列は既定で効きます。ただし1件を分割できないので、最長の1件が下限になります。

Playwrightは、既定で並べて動かします。公式は既定では、画面を出さずにChromium・Firefox・WebKitをまたいで並列に走る(設定で変えられる)と述べています。

並列を増やせばどこまで縮むのか。実際に割り当てて数えました。

並列数と割り当て順を変える

text
テスト 800 件。合計 6047秒、いちばん長い1件は 119.3秒
並列数と、割り当ての順番を変えて、一式が終わるまでの時間を見る

並列数    そのままの順      長い順に割り当て      理想(合計÷並列数)      いちばん長い1件
     1並列           6047秒                 6047秒                   6047秒                119秒
     2並列           3045秒                 3024秒                   3024秒                119秒
     4並列           1542秒                 1512秒                   1512秒                119秒
     8並列            779秒                  756秒                    756秒                119秒
    16並列            423秒                  378秒                    378秒                119秒
    32並列            245秒                  189秒                    189秒                119秒
    64並列            164秒                  119秒                     94秒                119秒
   128並列            133秒                  119秒                     47秒                119秒

64並列で119秒に届き、そこから先は変わりません。理想は47秒ですが、届きません

止まる理由は、1件を分けられないからです。いちばん長い1件が、そのまま下限になります

割り当て順で差が出る

32並列を見ると、245秒と189秒で56秒の差があります。並列数は同じです。

差は順番だけです。長いものを先に割り当てると、最後に長いものが残る事態を避けられます

だから並列を増やす前に、まず順番を見ることになります。費用をかけずに縮む部分がここにあります。

出典Playwright 公式ドキュメント「Installation」2026-08-18 確認
By default tests run headless in parallel across Chromium, Firefox and WebKit (configurable in playwright.config).
原文Playwright 公式ドキュメント「Installation」 この内容の有効期限2027-02-18

通しの試験だけでは、検出率が11.3%だった

通しで試す道具です。だからこそ、これだけに寄せると時間ばかりかかって届きません。

Playwrightは、通しで試すための仕組みです。公式はPlaywright Testは、現代のWebアプリのための端から端まで試す枠組みであると述べています。

では通しだけに寄せるとどうなるのか。層ごとの配分を変えて実際に比べて数えました。

層の配分を変える

text
欠陥 300件。内訳は関数の中 176件・繋ぎ目 85件・通しでしか出ない 39件
層ごとの1件あたりの時間は 単体0.02秒・結合1.5秒・E2E20秒として置いた

構成                    見つけた欠陥  検出率  一式の実行時間  1件あたりの時間
単体だけ 400件                       150件   50.0%            8.0秒           0.02秒
ピラミッド 400/60/8                  228件   76.0%          258.0秒           0.55秒
逆ピラミッド 40/40/60                 138件   46.0%         1260.8秒           9.01秒
E2Eだけ 80件                        34件   11.3%         1600.0秒          20.00秒

E2Eだけ80件では、検出率が11.3%で1600.0秒かかりました。単体だけ400件の8.0秒より200倍長い時間です。

いちばん良かったのはピラミッドで、258.0秒で76.0%でした。

どこに置くか

通しでしか出ない欠陥は39件、全体の13%です。ここを取るために通しの試験を置きます

残りの87%は、もっと安い層で取れます。通しの件数を増やしても、届く範囲はあまり広がりません

余談 この計測での注意

3つの計測はいずれも手元で書いた模型で、実際のPlaywrightを動かしたものではありません。欠陥がどの環境で出るかの割合は置いた値で、実際の分布とは違います。1環境620秒やテスト1件の秒数も置いた値です。層ごとの検出率も、件数が増えるほど上限に近づく形として置いています。ここで見せているのは、環境を足すと時間は倍々でも検出率は同じようには増えないという点と、並列にはいちばん長い1件という下限があるという点の2つです。

出典Playwright 公式ドキュメント「Installation」2026-08-18 確認
Playwright Test is an end-to-end test framework for modern web apps.
原文Playwright 公式ドキュメント「Installation」 この内容の有効期限2027-02-18

よくある質問

Playwrightとは何ですか
現代のWebアプリ向けの、通しで試す仕組みです。3つの閲覧環境に対応すると説明されています。
3つの環境で回す価値はありますか
この計測では4.5ポイントの上乗せでした。時間は3倍になるので、目的しだいの判断になります。
並列を増やせばいくらでも速くなりますか
なりません。いちばん長い1件が119秒なので、64並列以降はそこで止まりました。
通しの試験だけで足りますか
足りません。E2Eだけ80件では検出率が11.3%で、実行に1600.0秒かかりました。

まとめ

  • 環境を足すと時間は倍々
  • 検出率の伸びは小さい
  • 並列には下限がある
  • 通しだけでは届かない

今日から始められること

  1. いま回している環境の数を確かめる
  2. 環境ごとにしか出ない欠陥を数える
  3. いちばん長い1件の秒数を測る
  4. 層ごとの件数の内訳を出す

実務で組んだPlaywrightのワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る