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
1
1.5k
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
6.1k
長年続く手動E2Eテストを自動化で救いたい
kinosuke01
0
140
バックエンドエンジニアによるフロントエンドテスト拡充の具体的手法
kinosuke01
1
1.5k
生成AIで加速するテスト実装 - ロリポップ for Gamersの事例と 生成AIエディタの活用
kinosuke01
0
330
カンファレンス登壇資料を毎日読む習慣
kinosuke01
0
250
Notionで作るWebサイト「MuuMuu Sites」の裏側
kinosuke01
0
2.6k
Other Decks in Technology
See All in Technology
RGBに陥らないために -プロダクトの価値を届けるまで-
righttouch
PRO
0
110
Phase12_総括_自走化
overflowinc
0
1.5k
From Senior to Staff : To infinity and beyond !
kuahyeow
0
110
AI時代のオンプレ-クラウドキャリアチェンジ考
yuu0w0yuu
0
230
Blue/Green Deployment を用いた PostgreSQL のメジャーバージョンアップ
kkato1
0
130
Phase06_ClaudeCode実践
overflowinc
0
2k
Phase03_ドキュメント管理
overflowinc
0
2.5k
Datadog で実現するセキュリティ対策 ~オブザーバビリティとセキュリティを 一緒にやると何がいいのか~
a2ush
0
130
スピンアウト講座01_GitHub管理
overflowinc
0
1.4k
モジュラモノリス導入から4年間の総括:アーキテクチャと組織の相互作用について / Architecture and Organizational Interaction
nazonohito51
6
3k
Phase04_ターミナル基礎
overflowinc
0
2.3k
AIエージェント×GitHubで実現するQAナレッジの資産化と業務活用 / QA Knowledge as Assets with AI Agents & GitHub
tknw_hitsuji
0
230
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Information Architects: The Missing Link in Design Systems
soysaucechin
0
840
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
360
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
230
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Skip the Path - Find Your Career Trail
mkilby
1
89
Building a Scalable Design System with Sketch
lauravandoore
463
34k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
30 Presentation Tips
portentint
PRO
1
260
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対応等「ないものは作る」ことで実現。 現開発フローを踏まえつつ、テスト⾃動化を進めて、 サービスを⽀えていきましょう。 以上になります。ありがとうございました!