この機能は、アプリケーションのパフォーマンスリグレッションをモニタリングする場合や、ユーザーに対するアプリケーションのベースラインパフォーマンスを把握する場合などに役立ちます。
ユーザーが作成したmablテストの [Performance] タブをクリックすると、ブラウザーテストとAPIテストのパフォーマンスメトリックを表示できます。
- Cumulative app load time (ブラウザーテスト): このグラフは、このテストの各ステップ間でアプリケーションの読み込みにかかる合計時間を計測したものです (速度指標を使用して計測)。エンドユーザーは、このユーザー手順を手動で完了する際に、この合計時間をアプリケーションのパフォーマンスとして体感します。アプリケーションの読み込み時間は、テストの実行時間とは別であり、常にテストの実行時間より短くなります。このメトリックには、ChromeとEdgeでの実行のみが含まれます。
- API Response Time (APIテストのみ): このグラフは、このテスト内のすべてのリクエストにおけるAPI応答時間の合計を計測したものです。リクエスト間の時間など、他の要素は除外されます。API応答時間は、テストの実行時間とは別であり、常にテストの実行時間より短くなります。
- Test run time: テストの実行にかかった合計時間を計測し、日ごとの平均を表示します。ブラウザーテストの場合、このメトリックにはChromeとEdgeでの実行のみが含まれます。
[Performance] タブのメトリックは、過去90日間の成功したテスト実行を使用して計算されます。
これらのメトリックを使用することで、テスト対象の主なユーザー手順の完了に要する時間が長くなり始めているのを発見したり、アプリケーションパフォーマンスの改善によってユーザー手順に好影響が現れているのを確認したりすることができます。
[Performance] タブのドットをクリックすると、特定のテスト実行に移動できます。
ブラウザーテストの [Performance] タブ
ユースケース
パフォーマンスリグレッションのモニタリング
特に、テストを一定周期で実行する場合には、このチャートがパフォーマンスリグレッションをモニタリングするのに役立ちます。平均時間が右上がりに増えて、それが続いている場合には、パフォーマンスリグレッションが大きくなっている可能性があるため、その前後で行われたデプロイメントやアプリケーションの大きな変更を確認します。
個別のテスト出力を詳しく調べ、同じ速度インデックスのメトリックを使用して各ステップの [Performance] チャートを確認します。下の例では、個々のステップがパフォーマンス悪化のトレンドにどのように寄与しているかに加えて、詳細な調査が必要なパフォーマンス異常を確認することができます。
APIテストでは、個々のステップの [Performance] タブは、[Response] タブの下にあります。これには、個々のステップのAPI応答時間が経時的に表示されます。
テストステップのAPI応答時間
ユーザーエクスペリエンスの把握
このチャートでは、検索、待機、アサート等に費やす時間などのテストのmabl部分を含まない形で、アプリケーションのパフォーマンスが測定されます。そのため、このメトリックと経時的な変化は、エンドユーザーから見た実際のアプリケーションのエクスペリエンスに対応しています。たとえば、ログインフローでこのトレンドの悪化が起きている場合には、ユーザーが初めてアプリケーションを読み込むときの待機時間が長くなり始めていることを示している可能性があります。
アプリケーションのベースラインパフォーマンスの把握
mablでは過去90日のパフォーマンスがレポートされるため、経時的なアプリケーションのベースラインパフォーマンスを把握できます。また、テストを実行した環境ごとに結果をフィルタリングすることもできるため、異なる環境でのパフォーマンスの違いやテスト戦略に与える影響を確認することができます。
こちらにアプリケーションの速度インデックススコアの改善方法に関するweb.devの推奨事項が記載されています。
よく寄せられる質問 (FAQ)
テストの実行履歴と異なる数字が表示されるのはなぜですか?
テスト時間 (実行履歴の表に表示) では、起動から完了までのテスト全体の時間が取得されます。これには、自動修復やブラウザーの起動に費やした時間も含まれます。累積速度インデックス (下のグラフに表示) では、各テスト時間でアプリケーションが読み込みに要する合計時間が取得されます。これはユーザーがアプリケーションを通じて手順を完了する間にアプリケーションのユーザーインターフェイス (UI) の読み込み速度をどのように認識するかを反映したもので、実際のテスト時間よりもはるかに小さい値になるのが一般的です。
テスト時間には、次の時間が含まれます。
- ブラウザーの起動時間
- 待機時間
- mablがエレメントの検索やクリック/マウスカーソル移動/ドラッグアンドドロップを行うのに要する時間
累積速度インデックスには、次の時間のみが含まれます。
- 各ステップでアプリケーションが読み込みに要した時間 (アプリケーションの完全な再レンダリングを行わないステップも対象)
速度インデックスとは何ですか?
速度インデックスでは、経時的なページの読み込みパフォーマンス (mablがアクションを実行できるようになるまでに要する時間) を追跡します。詳細については、こちらご覧ください。mablで使用しているのは速度インデックスであり、速度インデックススコアではありませんのでご注意ください。
API応答時間とは何ですか?
API応答時間とは、APIリクエストを送信してから応答を受信するまでの時間です。
データをフィルタリングするには、どうすれば良いですか?
このページのチャートとデータは、ドロップダウンセレクターを使って環境別にフィルタリングできます。また、選択したアプリケーションフィルターでフィルタリングすることもできます。どちらを使用する場合も、チャートには選択したアプリケーションと環境で行われたテスト実行のみが表示されます。
環境フィルターは、パフォーマンス低下が起きている環境を切り分ける場合や、パフォーマンスが本番環境のエクスペリエンスによく似た安定した環境に焦点を合わせる場合に便利です。
アプリケーションフィルターは、特に大規模なワークスペースで、複数のアプリケーションでテストやフローを再利用している場合に、どのアプリケーションで問題が発生しているかを特定するのに役立ちます。
表示される結果を増やすにはどうすれば良いですか? /データが存在しないのはなぜですか?
mablで関連するパフォーマンスデータが自動的に収集されるようにテストを実行していれば、何もしなくてもパフォーマンス情報が自動的に表示されます。
パフォーマンスチャートが空欄になっているか、期待した数のテスト実行が存在しない場合は、以下をチェックして結果が表示されることを確認します。
- ChromeとEdge: ブラウザーテストの場合、パフォーマンスデータを読み込むのに必要なステップトレースが表示されるのは、ChromeとEdgeでの実行のみです。
- 成功したテスト: チャートが表示されるのは成功したテストのみです。
- プラン実行: 結果が表示されるのは、クラウドでプランの一部として実行されたテストのみです。アドホッククラウド実行とローカルテスト実行は、パフォーマンスメトリックに寄与しません。