← Insight ポータル

WebView ローディング検証(LoadSim)

読み込み時間を決め打ちで再現するページ群。アプリのローディング表示を 「いつ出して・いつ消すか」を実機で見て決めるために使います。

エンドポイントの状態を確認中…

ウォームアップが終わるまでリンクは踏めません。 サーバがコールドスタートすると 1〜3 秒の余分な遅延が計測に混ざるため、 応答を確認できるまで遷移を止めています(数秒で有効になります)。 URL を直接アプリに貼る場合はこのゲートが効かないので、 1 回空打ちしてから計測してください。

シナリオ

カスタム(秒数を自分で指定)

プリセットに無い秒数を試すとき用。単位はすべて秒(小数可)。 「一定時間応答しない」を作りたいときは hang と入れてください (上限は 秒。関数のタイムアウトを超えて保持はできません)。

ブラウザで開く

アプリ側のエラー表示の確認

HTTP 500 を返す

kind=doc500

文書自体が失敗するケース。時間経過による打ち切りではなく、 実エラーでだけエラー表示を出す設計になっているかの確認に使います。

開く

各シナリオで見たいこと

シナリオ確認する挙動
fast ローディング表示がそもそも出ないこと。一瞬出て消える点滅が起きていないか
normal 白い間だけ表示され、内容が見え始めた時点で消えること
slow 同上。待ち時間が長くても「止まっている」と誤解されない見え方かどうか
stall 本命。実テナントで報告されている「読み込み率が止まったまま プログレスが回り続ける」の再現(このシナリオでは 80% で停止)。 内容は完成しているのに表示が残らないこと
blank 真っ白のまま描画されないケース。表示が消えて真っ白+無表示にならないこと、 一定時間後に再読み込み導線が出ること

仕組み

末尾リソースの種別(実測)

Pixel 7a / Android 17 での実測。progress を止められたのは parser-blocking script だけでした。種別の効き方は WebView 実装に 依存するので、別端末では改めて確かめてください。

このツールのシナリオでの実測

シナリオtailKindprogress の推移FCP
stallblocking-script 20 → 70 → 80 で停止(22秒そのまま)1452ms
stall_imgimg 20 → 80 → 1001524ms

種別ごとの効き方(最小ページでの切り分け)

他の要素を持たない最小ページで種別だけを変えて測ったもの。 止まる位置(%)はページのリソース構成で変わるので、 上のシナリオの数字とは一致しません。ここで見るのは「止まるか否か」だけです。

種別progress の推移止まるか
img10 → 0 → 100(143ms)止まらない
async-script→ 100(1497ms) 止まらない。実テナントの計測タグ(GTM 等)はこの形
iframe(参考・未実装)10 → 0 → 80 → 100(138ms)止まらない
blocking-script 10 → 0 → 20 → 30 で停止 止まる。FCP は 232ms で内容は見えている

末尾に置く限り parser-blocking でも描画は止まりません(手前は全てパース済み)。 ただし計測スクリプトより後に置くことが必須で、前に置くと計測自体が走りません。

止まる割合はページ構成に依存します。最小ページでは 30%、 このツールの stall では 80% で止まりました。 「何%で止まるか」は再現したい現象の本質ではなく、 「内容は完成しているのに progress が進まない」ことが本質です。 裏を返すと、progress の割合を閾値に使う設計はページ構成に左右されることになります。

ネイティブ側と突き合わせる項目

  1. onPageCommitVisible の時刻と、その時点の progress
  2. first-contentful-paint の時刻(このページが出力する値)
  3. onPageFinished / progress 100% の時刻

2 と 3 の差が、そのまま「余分にプログレスを回していた時間」になります。 stall ではこの差が上限( 秒)まで開き続けます。