E2E分析基盤としてReportPortalを導入する
フリー株式会社 / okazaki-kk
メンバー / SRE / 従業員規模: 301名〜500名 / エンジニア組織: 51名〜100名
| ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
|---|---|---|
| 101名〜300名 | 2024年11月 | B to B |
| ツールの利用規模 | 101名〜300名 |
|---|---|
| ツールの利用開始時期 | 2024年11月 |
| 事業形態 | B to B |
アーキテクチャ
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
導入前のfreeeでは、E2Eテスト結果の分析にはRedashとJenkinsを併用していました。まず、Redashのクエリで不安定なテストをリストアップします。次に、そのテストの実行ログをJenkinsで確認することで、なぜそのテストが不安定なのかを調査していました。この構成には以下のような課題がありました。
- 分析にはRedashとJenkins両方を見に行く必要がある
- Redashでは不安定なテスト名とfail率しか見ることができないので、なぜそのテストが不安定なのか原因まではわからない
- fail時のスクリーンショットが直近の失敗のものしか残していない
- 数回前の失敗のスクリーンショットを見ることができないため、Slackにわざわざスクリーンショットをアップロードするという面倒な運用になっている
どのような状態を目指していたか
ログ・スクリーンショットの閲覧と、失敗原因の調査を一元で完了できる状態を目指して、ツールの調査を始めました。
導入の成果
ログ・スクリーンショットの閲覧と、失敗原因の調査を一元で完了できるようになりました。現在はE2Eテスト実行に、必要不可欠なツールとなっています。
導入時の苦労・悩み
Report Portalを構築するには、Google Cloud Marketplaceで購入することもできますが、セキュリティ的な観点から今回は社内AWSアカウントにセルフホストする方法を取りました。AWSにセルフホストする方法として、EC2かECSかEKS等の選択肢があり、そのうちECSかEKSのどちらで構築するか検討しました。
- ECS (Fargate) は公式でサポートされておらず、コミュニティによる簡素なドキュメント があるのみでした。
please use with caution.という注意書きがある通り、ドキュメントに沿って構築するには不明瞭な点がいくつかありました。
- 一方EKSは公式でサポートされていて、Helm chart も存在するためインストールが非常に簡単です。
それぞれのサポート状況や、freeeのインフラは主にEKSで動いていてEKSの知見も豊富にあったため、EKSで構築することを選択しました。ただ、チーム内にはあまりEKSの知見がなかったことや、Cluster Upgradeの負荷も考慮して、インフラ構築の方法には悩みました。
導入に向けた社内への説明
上長・チームへの説明
Report Portalを導入する際に一番気にしていた観点は、インフラコストでした。AWSでセルフホストするには、EKSやRDSやS3、MQ等の幾つかのコンポーネントが必要になります。 Report Portalを構築する際の、EKS NodeやRDSの推奨インスタンスタイプは公式ドキュメントに記載されています。
smallでもそれなりに大きなインスタンスタイプを要求しているので、それなりにコストがかかるかと思っていましたが、いざ構築してみるとsmallよりも小さなインスタンスタイプでも、特に問題なく動くことが分かりました。それに従って、当初想定していたインフラコストよりも抑えてインフラ構築することができました。それも手伝って、上長・チームへの説明は特に困りませんでした。
活用方法
よく使う機能
- E2Eテストが失敗した時のログとスクリーンショットを、Report Portalで閲覧する
- Report Portalを使うことで、ログとスクリーンショットを一元的に分かりやすく管理することができます。freeeではE2Eテストのテスト結果をSlackで通知しています。Slackから、失敗したテストのログとスクリーンショットのURLに遷移できるように、工夫して活用しています。
- 不安定テストの分析
- Report Portalにはdashboardという機能が存在し、不安定なテストを簡単に分析できるようになります。詳細は、公式ドキュメント を参考にしてください。
ツールの良い点
ログ・スクリーンショットの閲覧と、失敗原因の調査を一元で完了できる点が素晴らしいです。
ツールの課題点
Report Portalへのログインは、GitHub OAuthを利用しています。しかし、初めて利用する方がGitHub経由でログインするだけでは、Report Portalのログとスクリーンショットを閲覧することはできず、該当プロジェクトへ招待する必要があります。Report Portalを利用したい方が増えるたびに手動でプロジェクトに招待する のは手間なので、GitHub Actionsを利用してAPI経由で招待できるようにしました。ただ、初めてReport Portalを触る方は招待が必要なことに気づかずに困っているシーンを何度か見かけるので、この点に課題を感じています。
ツールを検討されている方へ
Report Portalの導入によって、確実にE2Eテストの分析基盤が良くなった実感があります。インフラ構築には一定の労力が必要ですが、その分恩恵は大きいので、興味があればぜひ調べてみてください。
フリー株式会社 / okazaki-kk
メンバー / SRE / 従業員規模: 301名〜500名 / エンジニア組織: 51名〜100名
フリー株式会社 / okazaki-kk
メンバー / SRE / 従業員規模: 301名〜500名 / エンジニア組織: 51名〜100名
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法


