Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Playwright x GitHub Actionsで実現する「レビューしやすい」E2E...
Search
kinosuke01
December 06, 2025
Technology
0
1.2k
Playwright x GitHub Actionsで実現する「レビューしやすい」E2Eテストレポート
「ソフトウェアテスト自動化カンファレンス2025」での登壇資料です。
https://testautomationresearch.connpass.com/event/361747/
kinosuke01
December 06, 2025
Tweet
Share
More Decks by kinosuke01
See All by kinosuke01
AIを導⼊しても、 開発⽣産性は"爆増"していない なぜ?
kinosuke01
4
5.9k
長年続く手動E2Eテストを自動化で救いたい
kinosuke01
0
110
バックエンドエンジニアによるフロントエンドテスト拡充の具体的手法
kinosuke01
1
1.4k
生成AIで加速するテスト実装 - ロリポップ for Gamersの事例と 生成AIエディタの活用
kinosuke01
0
310
カンファレンス登壇資料を毎日読む習慣
kinosuke01
0
240
Notionで作るWebサイト「MuuMuu Sites」の裏側
kinosuke01
0
2.5k
Other Decks in Technology
See All in Technology
AI時代、1年目エンジニアの悩み
jin4
1
130
漸進的過負荷の原則
sansantech
PRO
3
420
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
66k
JuliaTokaiとしてはこれが最後かもしれない(仮) for NGK2026S
antimon2
0
130
新規事業 toitta におけるAI 機能評価の話 / AI Feature Evaluation in toitta
pokutuna
0
290
【NGK2026S】日本株のシステムトレードに入門してみた
kazuhitotakahashi
0
240
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
0
120
あたらしい上流工程の形。 0日導入からはじめるAI駆動PM
kumaiu
4
600
20260129_CB_Kansai
takuyay0ne
1
230
オープンウェイトのLLMリランカーを契約書で評価する / searchtechjp
sansan_randd
3
460
生成AI時代にこそ求められるSRE / SRE for Gen AI era
ymotongpoo
4
510
Databricks Free Edition講座 データサイエンス編
taka_aki
0
250
Featured
See All Featured
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
48
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Navigating Team Friction
lara
192
16k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
400
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
230
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Technical Leadership for Architectural Decision Making
baasie
1
230
Transcript
1 Playwright x GitHub Actionsで 実現する「レビューしやすい」 E2Eテストレポート ロリポップ‧ムームードメイン事業部 ⻄⽥貴之 2025.12.06
2 ⾃⼰紹介 ロリポップ‧ムームードメイン事業部 事業開発チーム 2020年 中途⼊社 ⻄⽥ 貴之 Nishida Takayuki
• Webアプリケーションエンジニア • 主に新規事業開発を担当 • エンジニア組織におけるAI活⽤の推進や 開発⽣産性向上への取り組みも⾏っている。 • X : @kinosuke01
3 アジェンダ 1. はじめに:本セッションのゴール 2. 背景 3. 現状と理想像 4. 課題と対応:任意のE2Eテストを実⾏したい
5. 課題と対応:スクショつきのテスト結果がほしい 6. まとめ
はじめに 4 Playwright と Github Actions によるE2Eテストの レポート共有事例をお伝えすることで、 E2E⾃動テスト導⼊のヒントにつなげることを ⽬指します。
このセッションのゴール
背景 5
背景 • GMOペパボのロリポップ‧ムームードメイン事業部は、 コンパネの操作でサーバー等のインフラをセットアップして提供する プロダクトが多い。 • 例)ロリポップ!レンタルサーバー • これらは個別のユニットテストだけではカバーできないので、 E2Eテストで品質担保する必要がある。
• 20年以上運⽤されてきたプロダクトもあるが、 E2Eテストが⼿動のままなので、これを⾃動化したい 🔥 E2Eテストを⾃動化したい
背景 • Playwrightとは • Microsoft社製のE2Eテストツール。 • 実装したテストコードに従い、ブラウザを⾃動操作‧動作検証してくれる。 • 実⾏結果をブラウザ画⾯のスクリーンショットつきで、レポートしてくれる。 •
このPlaywrightを、 事業部の主要なプロダクトに導⼊開始した。 解決策としてPlaywrightを導⼊開始 スクリーンショットつきの テスト結果のレポート例
現状と理想像 8
現状と理想像 1. 開発者は、PRを作る。 2. PRのコードを検証環境にデプロイする (ここは既に⾃動化されている)。 3. 開発者は、検証環境で必要なE2Eテストを⼿動で⾏いスクリーンショットを撮る。 4. 開発者は、E2Eテスト結果とエビデンス(スクリーンショット)をコメントする。
5. レビュアーは、コードレビューに加え、 E2Eテスト結果から本番環境に反映して問題ないかをチェックする。 6. 問題なければ承認&マージ。 現状の開発フローは、⼿動のE2Eテストとスクリーンショットが必要
現状と理想像 1. 開発者は、PRを作る。 2. PRのコードを検証環境にデプロイする (ここは既に⾃動化されている)。 3. 開発者は、任意のE2Eテスト実⾏をコメントで指⽰する。 4. GitHub
Actions で Playwright が起動。 コードに含まれるテストケースをもとに、E2Eテストが⾃動実⾏。 結果がスクリーンショット付きでコメントされる。 5. レビュアーは、コードレビューに加え、 E2Eテスト結果から本番環境に反映して問題ないかをチェックする。 6. 問題なければ承認&マージ。 理想は、⼿動のE2Eテストとスクリーンショット登録を⾃動化
現状と理想像 1. 開発者は、PRを作る。 2. PRのコードを検証環境にデプロイする (ここは既に⾃動化されている)。 3. 開発者は、任意のE2Eテスト実⾏をコメントで指⽰する。 4. GitHub
Actions で Playwright が起動。 コードに含まれるテストケースをもとに、E2Eテストが⾃動実⾏。 結果がスクリーンショット付きでコメントされる。 5. レビュアーは、コードレビューに加え、 E2Eテスト結果から本番環境に反映して問題ないかをチェックする。 6. 問題なければ承認&マージ。 理想は、⼿動のE2Eテストとスクリーンショット登録を⾃動化 現状のフローと変わらない “レビューしやすい”テスト結果のレポート
課題と対応 任意のE2Eテストを実⾏したい 12
課題と対応:任意のE2Eテストを実⾏したい • 課題 • E2E⾃動テストは時間もかかり不安定なので、PR作成やpushと同時に全部動かすという ことはしたくない。なので、任意のE2EテストをPRの中で発動させる必要がある。 • 対応 • Playwrightのタグ機能を使って、
特定のタグに紐づいたテストのみ実⾏できるようにする。 • PRのコメントで、スラッシュコマンドと実⾏対象のタグを受け取る。 • これにより任意のテストだけの実⾏を実現する。 Playwrightのタグと、スラッシュコマンドで対応
課題と対応:任意のE2Eテストを実⾏したい PRに、このようにコメントすると Playwrightのタグと、スラッシュコマンドで対応 /pw-test signup npx playwright test --grep "@signup"
巡り巡って、これがGithub Actionsで実⾏される。 これは簡単にできる。
課題と対応 スクショつきのテスト結果がほしい 15
課題と対応:スクショつきのテスト結果がほしい • 課題 • 現状、⼿動のE2Eテストの結果は、スクリーンショットつきでPRコメントしている。 • これと同じことをやりたいが、GitHub API は画像登録に対応していない 🔥
• どこかにホストされている画像を、Markdownの中で表⽰させることはできるが、 GitHub上に画像を登録するAPIはなさそう。 スクリーンショット登録は簡単ではない 「ここにドラッグアンドドロップで画像 登録する」と同等のことがAPIではで きない
課題と対応:スクショつきのテスト結果がほしい • 対応案 • S3等のオブジェクトストレージを準備して、スクリーンショットをホストする。 • ホストされた画像URLを、PRコメント欄に登録する。 • 評価 •
管理対象のインフラを増やしたくないので、できれば避けたい。 • GitHub 上で完結できる⽅が望ましい。 対応案1: オブジェクトストレージにホストする
課題と対応:スクショつきのテスト結果がほしい • 対応案 • S3等のオブジェクトストレージを準備して、スクリーンショットをホストする。 • ホストされた画像URLを、PRコメント欄に登録する。 • 評価 •
管理対象のインフラを増やしたくないので、できれば避けたい。 • GitHub 上で完結できる⽅が望ましい。 対応案1: オブジェクトストレージにホストする 却 下
課題と対応:スクショつきのテスト結果がほしい • Playwrightはテスト結果として、 htmlとスクリーンショットのセットをレポート出⼒する。 • これを、GitHub Actions の中で、任意のリポジトリにプッシュして、 GitHub Pages
で公開する。 • 社内で利⽤している GitHub Enterprise には GitHub Pages のページにデフォルトでアクセス制御ついているので安⼼。 • Github Pages へのリンクをPRコメントに投稿する。 対応案2: GitHub Pages使う
課題と対応:スクショつきのテスト結果がほしい 対応案2: GitHub Pages 使うケースはうまく動いた GitHub Actions上で、 レポートとスクリーンショットを 任意のリポジトリにプッシュ ビルドとデプロイされて、
レポートがGithub Pagesで確認できる
課題と対応:スクショつきのテスト結果がほしい • GitHub Pages は静的サイトをビルドしてデプロイしている。 • 対象ファイルが増えれば増えるほど、時間がかかってしまう。 • レポートが増えてくると、反映されるまで相当の時間がかかりそう。 対応案2:
GitHub Pages 使うのは問題もある
課題と対応:スクショつきのテスト結果がほしい • GitHub Pages は静的サイトをビルドしてデプロイしている。 • 対象ファイルが増えれば増えるほど、時間がかかってしまう。 • レポートが増えてくると、反映されるまで相当の時間がかかりそう。 対応案2:
GitHub Pages 使うのは問題もある 却 下
課題と対応:スクショつきのテスト結果がほしい • Playwrightのテスト結果を、 Markdownとスクリーンショットのセットで出⼒する。 • これを、GitHub Actions の中で、任意のリポジトリにプッシュする。 • プッシュしたMarkdownファイルのGitHubのURLを、PRコメントに投稿する。
• Markdownファイルは、GitHub上でプレビュー表⽰されるので、 GitHub Pages のようなビルドを考慮する必要がない。 対応案3: スクショつきのMarkdownを使う
課題と対応:スクショつきのテスト結果がほしい • Playwright標準のレポーターはMarkdownに⾮対応。 • サードパーティ製のMarkdownに対応したカスタムレポーターはあるけど、 スクリーンショットを表⽰してくれなさそう... • 要件を満たすMarkdownレポーターがない 🔥 対応案3:
ただ、PlaywrightにはMarkdownのレポーターがない
課題と対応:スクショつきのテスト結果がほしい • 仕⽅がないので、Playwrightのカスタムレポーターを作って、 今回の要件に合うMarkdownファイルを出⼒できるようにした。 • こんな感じの構造で出⼒している。 対応案3: Markdownのカスタムレポーターを作った - playwright-md-report
- index.md - screenshots - xxx.png - xxx.png
課題と対応:スクショつきのテスト結果がほしい • 出⼒された index.md をエディタでプレビューするとこんな感じ。 対応案3: Markdownのカスタムレポーターを作った
課題と対応:スクショつきのテスト結果がほしい • Markdownカスタムレポーターはnpmとして公開し、 複数のプロダクトへの導⼊ができるようにした。 対応案3: Markdownのカスタムレポーターを作った
課題と対応:スクショつきのテスト結果がほしい • GitHub Actions でやることは結構ある。 • チェックアウト、コメントからタグの抽出、環境セットアップ、Playwrightテスト実⾏、 テスト結果の読み込み、Markdownレポートのpush、テスト結果のコメント投稿。 • プロダクトごとに実装するのは⼤変なので、カスタムアクションとして切り出し。
• InnerSourceとして事業部内に展開。 対応案3: 複数プロダクトで導⼊できるようカスタムアクション化
課題と対応:スクショつきのテスト結果がほしい こんな感じになった 1. `/pw-test xxx` とコメント 2. xxxタグのE2Eテストが実⾏ 3. 結果がコメントされる
4. 結果コメント欄にある View Reportをクリックすると 対応案3: 全体の挙動確認
課題と対応:スクショつきのテスト結果がほしい 5.ViewReportをクリックすると Markdown形式のレポートが GitHub上でプレビュー表⽰。 スクショ付き。 対応案3: 全体の挙動確認 理想とする体験を 実現することができた 👏👏
課題と対応:スクショつきのテスト結果がほしい • 複数のプロダクトへの導⼊を進めている。 現在
まとめ 32
まとめ 33 • 背景:E2Eテストを⾃動化したい • 現状と理想像: • PR内におけるテスト実⾏とテスト結果登録を⾃動化したい。 • テスト結果はスクショ付きで「レビューしやすい」を維持。
• 課題と対応:任意のE2Eテストを実⾏したい • スラッシュコマンドとタグで解決。 • 課題と対応:スクショつきのテスト結果がほしい • GitHubの制約。 • スクショ付きのMarkdownレポートをプッシュすることで解決。 アジェンダの答え合わせ
34 まとめ ⾃動化しても「レビューしやすい」テスト結果は維持。 Markdown対応等「ないものは作る」ことで実現。 現開発フローを踏まえつつ、テスト⾃動化を進めて、 サービスを⽀えていきましょう。 以上になります。ありがとうございました!