パフォーマンステストメトリックを使えば、アプリケーションのパフォーマンスをさまざまな方法で測定できます。失敗基準と組み合わせると、最小許容パフォーマンスを表すしきい値を設定し、チームの要件を満たさないテストを失敗させることができます。これにより、アプリケーションに新しく変更を加えたときに、パフォーマンステストの出力を使用して、パフォーマンスリグレッションを監視し、すべての部分が期待どおりに機能していることを確認できます。
この記事では、mablのパフォーマンステストで使用可能なパフォーマンステストメトリックの種類について説明します。
機能テスト失敗率
機能テスト失敗率は、ステータスが "failed" となった機能テストの割合を表します。ステータスが "failed" の場合、対応する機能テストのアサーションの違反があったことを示します。
機能テスト失敗率は、ブラウザーテストとAPIテストの失敗基準として設定できます。
機能テスト失敗率の設定
ブラウザーメトリック
ブラウザー固有のパフォーマンスメトリックとしては、コアウェブバイタルやステップ実行時間があります。これらのメトリックによる失敗基準は、ブラウザーテストのすべてのステップまたは特定のステップに対して作成できます。
- すべてのステップ: すべてのステップの結果が、そのメトリックに関する1つのスコアに統合されます。すべてのステップに対する失敗基準は、アプリケーション全体のベースラインパフォーマンスを監視するために使用します。これが最も適するのは、選択したメトリックに関してすべてのステップが同程度のパフォーマンスを示すことが期待されている場合です。
- 特定のステップ: 特定のステップに対する失敗基準は、アプリケーションの最も重要な部分を詳しく観察するために使用します。たとえば、リンクやボタンのクリックのようなナビゲーションステップを監視する失敗基準を設定できます。
テストの特定のステップに対する失敗基準の設定
コアウェブバイタル
コアウェブバイタルは、ユーザーエクスペリエンスのさまざまな側面を測定するためにGoogleによって定義されたメトリックのセットです。アプリケーションのコアウェブバイタルを向上させると、アプリケーションのSEOと、ユーザーが認識する全体的な応答性が向上します。
以下のコアウェブバイタルを使用して、アプリケーションのパフォーマンスを測定できます。
メトリック | 詳細 |
FCP (First Contentful Paint) | ブラウザーがページの最初のDOM要素をレンダリングするのにかかる時間 |
LCP (Largest Contentful Paint) | ブラウザーがページの最大の画像またはテキストブロックをレンダリングするのにかかる時間。このメトリックは、ユーザーが認識するページのパフォーマンスに最も近似するものと考えられています。 |
CLS (Cumulative Layout Shift) | ページの読み込み中にコンテンツがどれだけ移動するかの測定。ページのCLSが大きい場合、読み込み中に何回も要素が移動するため、ユーザーはページを操作しにくくなります。 |
TTFB (Time To First Byte) | ブラウザーがサーバーにリクエストを送った後で応答の最初のバイトを受信するまでの時間 |
DOM Content Loaded | DOMが完全に読み込まれて解析されるまでの時間 |
しきい値は、Googleの推奨事項に基づく "Moderate" および "Poor" のパフォーマンスを表します。
ステップ実行時間
ステップ実行時間は、mablがステップを実行するのにかかる時間を測定します。
アプリケーションがシングルページアプリケーション (SPA) の場合、ステップ実行時間を使用して、アプリケーションのナビゲーションステップのパフォーマンスを測定することをお勧めします。Chromeでは、SPAの後続のナビゲーションステップに対してコアウェブバイタルを収集できません。GoogleはSPAに関するコアウェブバイタルの制限事項を認識しており、解決策としてソフトナビゲーションを検討中です。
APIメトリック
API固有のパフォーマンスメトリックとしては、レスポンスタイムとHTTPエラー率があります。
レスポンスタイム
レスポンスタイムは、サーバーがリクエストを処理して応答を返すのに要する時間です。
平均値に加え、パーセンタイル値に基づいてAPIレスポンスタイムが失敗となる失敗基準を設定できます。パーセンタイル値を使用すると、指定した値を下回るレスポンスタイムを知ることができます。たとえば、APIの95パーセンタイルのレスポンスタイムが500ミリ秒の場合、APIのレスポンスタイムの95%が500ミリ秒未満です。
パーセンタイル値は、平均値よりも外れ値の影響を受けにくくなります。パーセンタイル値を用いてAPIレスポンスタイムを測定することで、大半のユーザーが良好なパフォーマンスを得ているかどうかを判断し、負荷に対するシステムの応答を詳細に把握することができます
HTTPエラー率
HTTPエラー率は、エラー応答が返されたAPIリクエストの割合です。
HTTPエラー率と機能テスト失敗率の間には多少の重なりが生じる可能性があります。APIテストには、リクエストで200応答が返されることを確認するデフォルトのアサーションが存在するためです。