9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Playwright MCP】API負荷計測を自動化し、障害後のパフォーマンス調査を圧倒的に効率化した話

9
Posted at

はじめに

2026年1月、特定コンテンツへのアクセス集中により、レスポンス遅延が発生。再発防止のため、全コンテンツ実行画面のパフォーマンス調査が必要になりました。 しかし、手動でChrome DevToolsを開いて、遷移ごとにAPIを記録し、スプレッドシートにまとめる作業は膨大な時間がかかりますし、あまりやりたくない仕事です。

そこで、Claude Code と Playwright MCP を組み合わせ、AIに「画面を操作しながらの自動計測」を任せたところ、驚くほど詳細なレポートが爆速で仕上がりました。

活用したツールスタック

  • Claude Code: ターミナルで動作するAIエージェント
  • Playwright MCP: Claudeがブラウザを操作するための拡張機能
  • VSCode: コード確認・プロンプト微調整用

AIへの「無茶振り」プロンプト

実際に投げたプロンプトの構成です。

プロンプト例:

特定の動的コンテンツのレスポンスが悪いため、画面遷移ごとのAPI処理時間を測定し、改善ポイントを洗い出してください。 
Playwright MCPを使って実際にページを操作し、以下のURLから最後までフローを実行してください。 
結果は、APIごとのレスポンス時間を含むMarkdown形式のレポートで出力してください。
対象URL: https://staging.example.com/interactive-content?id=12345

作業の目的、実際にやること、それに必要な情報を与えて実行します。

爆速で生成された調査レポート(サンプル)

AIが実際に画面を叩いて、ネットワーク通信を傍受して作成したレポートがこちらです。(※一部情報を伏せています)

1. 計測概要

  • 計測対象: インタラクティブ・コンテンツのユーザーフロー
  • 対象フェーズ: コンテンツTOP → コンテンツ実施 → 結果表示
  • 環境: ステージング環境
  • 計測手法: Playwright MCPによるブラウザ操作およびネットワークログ解析

2. フェーズ別レスポンス計測結果

AIが各画面遷移における「体感速度」と「裏側で走っているAPI数」を自動集計しました。

フェーズ ユーザー操作 遷移時間 API数 主なボトルネック
Phase 1 TOPページ表示 1,894ms 5回 初期情報取得API (958ms)
Phase 2 コンテンツ開始 2,433ms 5回 設問データ取得 (1,358ms)
Phase 3 回答・結果表示 3,803ms 8回 回答登録POST (1,130ms)

3. API詳細分析(ワースト5)

全18回のAPIコールのうち、改善優先度が高いものをAIが自動抽出しました。

APIエンドポイント(仮称) 処理時間 メソッド 備考
/api/v1/get-scenario 1,358ms GET 全フロー中で最遅。データ量に起因か。
/api/v1/submit-answer 1,130ms POST DB書き込みを伴うため、負荷耐性の確認が必要。
/api/v1/get-result 1,169ms GET 結果計算ロジックの最適化余地あり。
/api/v1/get-config 119~462ms GET 1フロー中に9回呼び出しされており非効率。
/api/v1/verify-license 260~328ms GET セッション内で3回重複呼び出しを確認。

4. AIによる改善提案

計測結果に基づき、AIがエンジニア視点で以下の最適化案を提示しました。

1. 共通設定API(get-config)のキャッシュ化
現状、1フローで9回呼び出されています。クライアントサイドでのメモリキャッシュ、または1回のバッチ取得に統合することで、計1.5秒程度のオーバーヘッドを削減可能です。

2. 設問データのプリフェッチ(先読み)
TOPページ表示中(Phase 1)に、裏側でPhase 2の設問データを読み込んでおくことで、ユーザーの体感待ち時間をほぼゼロにできます。

3. リクエストの並列化
Phase 3において、「結果取得」と「解説取得」のAPIが直列で呼ばれています。これを並列実行(Promise.all等)に変更することで、画面表示を約0.8秒高速化できる可能性があります。

困ったこと

Playwright MCPが起動するブラウザは、プロキシ認証やBASIC認証など、一部手動での補助が必要な場面はあります。これを乗り越えることができれば、E2Eテストの自動化が進むのだが、解決策を見出せていない。

ケースによっては画面操作が複雑でPlaywright MCPでは処理できない場合がありました。その場合は、初めにレポジトリの該当ソースコード部分を参照させ、操作方法を理解させておくと、画面操作がスムーズに進む場合が多いです。

結論

Playwright MCPを使うメリット

  • 複雑な操作が必要な画面でも、AIがソースコードを読んで勝手に操作を完了してくれます
  • ログをコピペして整形する手間がゼロになります
  • 単なる数値報告ではなく、改善の優先順位まで提案してくれるため、そのまま設計作業に進められています

Playwrightは単なるテスト自動化ツールだと思っていたのですが、このような測定情報を集計できると、開発ツールとして重宝します。
Chrome Devtools MCPも使える(機能が多い)と聞いているので、そちらと比較検証もしてみたいです。

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?