mablで新しいアプリケーションを作成すると、「Check all pages for broken links (すべてのページのリンク切れやエラーの有無をチェック)」というプランが作成されます。このプランは、「Visit all linked pages within the app (アプリ内のすべてのリンク先ページにアクセス)」というテストを実行します。これはリンククローラーとも呼ばれ、週1回無料で行われます。
リンククローラーテストでは、アプリケーション内のリンク切れの可能性が通知されます。リンククローラーテストの出力は、アプリケーションのテストカバレッジを計算する基準にもなります。詳細については、ページカバレッジに関する記事を参照してください。
仕組み
リンククローラーテストでは、最初にアプリケーションのURLを読み込み、DOMスナップショットとページ上の各アンカー要素のハイパーリンクを収集します。
リンクのチェック
リンククローラーは、GETリクエストを用いて各リンクを検証し、HTTPステータスにエラーがないことを確認します。次のいずれかのカテゴリに属する場合は、リンク切れと見なされます。
- 4xxまたは5xxステータスが返される
- リダイレクト回数が多すぎる
- リンクとして識別されたURLの形式が正しくない
ページ上のリンク切れのチェック
リンクがアプリケーションのURLのドメインと一致していて、有効なコンテンツタイプを含む場合、このリンクはページキューに追加されます。
たとえば、アプリケーションのURLがhttps://app.example.com
である場合、リンククローラーはhttps://app.example.com/support
にアクセスしますが、https://example.com/blog
にはアクセスしません。これは、ドメインがアプリケーションのURLのドメインと一致しないためです。
有効なコンテンツタイプには、以下が含まれます。
- text/html
- application/xhtml+xml
- application/xml
クリックでページ操作を行うための他のHTML要素 (同じURLを使用し、data-controlsでページコンテンツを変更するタブなど) は、リンククローラーテストではリンクと見なされません。
キュー内のページへのアクセス
リンククローラーでページ上のリンクのチェックが終わると、リンククローラーはページキュー内の次のページにアクセスし、そのページのリンクをチェックします。この処理はリンククローラーがキュー内のすべてのページにアクセスするまで繰り返されます。
リンククローラーでアクセスできるのは最大500ページで、確認できる固有のリンクは最大10,000件です。アプリケーション内のリンク数がこれらの上限より多い場合、リンククローラーでアクセスできるのは最初の500ページまで、チェックできるリンクは最初の10,000件までとなります。
mablのブラウザーテストの最大実行時間は6時間です。6時間を超えてリンククローラーテストが実行されると、mablによって自動的に実行が停止されます。
リンク切れレポートの生成
テストが終了すると、リンククローラーはエラー応答を返すリンクのリストを含むリンク切れレポートを生成します。ダウンロードボタンをクリックすると、リンク切れレポートがCSV形式でダウンロードされます。
リンク切れレポート
詳細情報
リンククローラーテスト構成するための設定の詳細については、リンククローラーの管理に関する記事をご覧ください。