Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
100
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
4.4k
長年続く手動E2Eテストを自動化で救いたい
kinosuke01
0
98
バックエンドエンジニアによるフロントエンドテスト拡充の具体的手法
kinosuke01
1
1.3k
生成AIで加速するテスト実装 - ロリポップ for Gamersの事例と 生成AIエディタの活用
kinosuke01
0
290
カンファレンス登壇資料を毎日読む習慣
kinosuke01
0
210
Notionで作るWebサイト「MuuMuu Sites」の裏側
kinosuke01
0
2.5k
Other Decks in Technology
See All in Technology
シンプルを極める。アンチパターンなDB設計の本質
facilo_inc
2
1.6k
Docker, Infraestructuras seguras y Hardening
josejuansanchez
0
150
著者と読み解くAIエージェント現場導入の勘所 Lancers TechBook#2
smiyawaki0820
11
5.2k
Uncertainty in the LLM era - Science, more than scale
gaelvaroquaux
0
690
Karate+Database RiderによるAPI自動テスト導入工数をCline+GitLab MCPを使って2割削減を目指す! / 20251206 Kazuki Takahashi
shift_evolve
PRO
1
240
MS Ignite 2025で発表されたFoundry IQをRecap
satodayo
3
240
生成AI・AIエージェント時代、データサイエンティストは何をする人なのか?そして、今学生であるあなたは何を学ぶべきか?
kuri8ive
2
2k
知っていると得する!Movable Type 9 の新機能を徹底解説
masakah
0
230
意外とあった SQL Server 関連アップデート + Database Savings Plans
stknohg
PRO
0
190
freeeにおけるファンクションを超えた一気通貫でのAI活用
jaxx2104
3
1.4k
グレートファイアウォールを自宅に建てよう
ctes091x
0
130
AI/MLのマルチテナント基盤を支えるコンテナ技術
pfn
PRO
5
770
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Speed Design
sergeychernyshev
33
1.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Why Our Code Smells
bkeepers
PRO
340
57k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Embracing the Ebb and Flow
colly
88
4.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Unsuck your backbone
ammeep
671
58k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
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対応等「ないものは作る」ことで実現。 現開発フローを踏まえつつ、テスト⾃動化を進めて、 サービスを⽀えていきましょう。 以上になります。ありがとうございました!