0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Tricentis Neoload を利用したRealBrowser負荷テストでブラウザ利用の負荷テストを試す

0
Posted at

背景

NeoLoadで負荷テストをやっていると、「プロトコルベースのテストだと検知できないパフォーマンス問題がある」という壁にぶつかることがあります。

たとえば、SPAやクラウドネイティブなWebアプリは、クライアントサイドで大量のJavaScriptを処理します。HTTPリクエストの応答時間だけを計測しても、実際にユーザーがブラウザ上で体感する「重さ」は見えてきません。

そこで登場するのが RealBrowser(リアルブラウザ) 機能です。名前のとおり、本物のChromiumブラウザを使って負荷をかけることで、プロトコルベースでは取れないクライアントサイドのメトリクスを計測できます。

この記事では、RealBrowserのセットアップからレコーディング、テスト実行まで、一通りの流れを紹介します。

対象バージョン:NeoLoad 9.0以降(本記事は2026.1で確認)


RealBrowserとは何か

プロトコルベースとの違い

通常のNeoLoadのテストは、HTTPリクエストをネットワーク層から直接サーバーに送るプロトコルベースのアプローチです。これは非常に軽量ですが、ブラウザがページをレンダリングする処理は再現しません。

RealBrowserは異なります。実際のChromiumブラウザインスタンスを起動し、クリックやキーストロークをそのまま再現します。これにより:

  • JavaScriptの実行を含むページ全体のレンダリングが再現できる
  • Core Web Vitals(LCP、INP、CLS)などのクライアントサイドメトリクスが取得できる
  • SPAやクラウドネイティブアプリの実ユーザー体験に近いテストが可能になる

まとめると以下のような形です。

メトリクス RealBrowser Protocol-based
リクエスト / レスポンス時間
スループット・エラー率
LCP(Largest Contentful Paint)最大コンテンツの描画時間
INP(Interaction to Next Paint)操作への応答速度
CLS(Cumulative Layout Shift)レイアウトのズレ・視覚安定性
ページロード時間(クライアント側)
大規模VUへの適性(軽量・低リソース消費)
API / バックエンド特化(REST, SOAP, WebSocket 等)

対応ブラウザ

レコーディング時はChromiumのみ使用できますが、テスト実行時は以下のブラウザを選択できます:

  • Chromium(デフォルト、NeoLoadにバンドル)
  • Mozilla Firefox(NeoLoadにバンドル)
  • WebKit(NeoLoadにバンドル)
  • Google Chrome(ローカルへのインストールが別途必要)
  • Microsoft Edge(ローカルへのインストールが別途必要)

注意点:リソース消費

RealBrowserはVirtual User(VU)ごとにブラウザインスタンスを起動します。プロトコルベースのテストと比べてCPU・メモリの消費量が大幅に増えます。

Load Generator(LG)のJVMは、ホストの利用可能メモリの**約15%**に設定し、残りをブラウザインスタンス用に確保することが推奨されています。スケールアップする際は、LGホストで他のプロセス(特にウイルス対策ソフト)が動いていないかも確認しましょう。


事前準備とインストール

動作環境

OS Chromium Firefox WebKit Chrome Edge
Windows 10+ (64-bit)
Ubuntu 22.04, 24.04 (64-bit)
Docker - Ubuntu 22.04
macOS

macOSでは、最初のレコーディング/テスト実行時にバックグラウンドでブラウザのダウンロードが走るため、初回起動に最大1分かかることがあります。またインターネット接続が必要です。

インストール手順

NeoLoad 9.0以降のフルインストーラーにはRealBrowserが含まれています。インストールウィザードの途中でRealBrowserを有効にするオプションが表示されるので、そのまま有効にしてインストールします。

パッチインストーラーにはRealBrowserは含まれていません。フルインストーラーを使ってください。

Linuxの場合の追加手順:

Linuxディストリビューションによっては、追加の依存ライブラリが必要です。

  1. NeoLoadのインストールディレクトリの Tools > RealBrowser フォルダを開く
  2. install-realbrowser-dependencies.sh を実行する

ライセンス確認

RealBrowserを使うには、RealBrowser機能が有効化されたライセンスが必要です。テスト実行前に、ライセンスに十分なVU数が確保されているか確認してください。


ユーザーパスをレコーディングする

レコーディングの起動

RealBrowserのレコーダーは2つの方法で起動できます:

  • ツールバーの Start recording ボタン
  • メニューの Record > Start RealBrowser Recording

レコーディング手順

  1. レコーダーランチャーパネルの RealBrowser tab を開く
  2. Enable RealBrowser recording チェックボックスをオンにする
  3. 必要な設定(解像度、ブラウザなど)を確認する
  4. Start をクリックしてChromiumブラウザを起動する
  5. テストしたいWebアプリを通常通り操作する(クリック、入力、ページ遷移など)
  6. 操作が終わったらレコーダーを停止する

RealBrowserプロトコルはスタンドアロンで動作します。有効にすると他のプロトコルのレコーダーは自動的に無効になります。

[RealBrowser Recording]
RealBrowser Recorder

image.png

レコーディング後のウィザード

録画を停止すると、Post-recording Wizard が起動します。ここで CaptureRequests アクションの数を指定すると、NeoLoadがレコーディング中のリクエストを自動的に分類してバケットを作ってくれます(XHR/FetchはURLごとの個別バケット、その他はリソースタイプ別バケット)。


ユーザーパスをデザインする

レコーディングしただけでは、動的なデータや複雑な画面遷移に対応できないことがあります。デザインフェーズでは以下のような調整が可能です。

主なアクション

アクション 説明
OpenBrowser ブラウザの起動。実行時のブラウザ種別もここで指定
Navigate URLへの遷移
Click DOM要素のクリック
Type テキスト入力
WaitForNavigation ページ遷移の完了まで待機
WaitForSelector 特定の要素が表示されるまで待機
EvaluateJavaScript カスタムJavaScriptの実行
CaptureRequests ブラウザが発行するリクエストのメトリクス収集

[Action一覧]
image.png

[emailフィールドにテキスト入力する例]
image.png

waitForNavigation の活用

ページ遷移後の待機条件は waitForNavigation.until パラメータで指定できます:

  • LOAD:ページの onload イベント発火まで待機(デフォルト)
  • DOMCONTENTLOADED:DOMの読み込み完了まで待機
  • NETWORKIDLE:500ms間ネットワーク通信がなくなるまで待機
  • COMMIT:リクエストが送信された時点で完了とみなす

LOADDOMCONTENTLOADED イベントを発行しないページもあります。アクションがタイムアウトする場合は NETWORKIDLECOMMIT に切り替えてみてください。

セレクターの指定

要素の特定にはCSSセレクターまたはXPathセレクターを使います。複数のセレクターを指定することでアプリの変更に強いテストを作れます。ただし Text= セレクターと他のタイプを混在させることはできません。

[セレクター設定例]
image.png

現時点での制限事項

以下の機能はRealBrowserでは未対応です(2026.1時点):

  • ドラッグ&ドロップ
  • アラートダイアログの操作(デフォルト無効)
  • CookieやLocalStorageの直接操作(EvaluateJavaScript で代替)
  • SVG要素のインタラクション
  • ダウンロードファイルのアサーション
  • Fork(フロー制御)アクション

Core Web Vitalsを計測する

RealBrowserの大きな特徴のひとつが Core Web Vitals の計測です。プロトコルベースのテストではこれらのクライアントサイドメトリクスは取れません。

3つの指標

メトリクス 正式名称 意味
LCP Largest Contentful Paint 最大コンテンツの描画時間。読み込みパフォーマンスの指標
INP Interaction to Next Paint インタラクションに対する応答速度の指標
CLS Cumulative Layout Shift 視覚的な安定性。レイアウトのズレを示す

Core Web Vitalsの有効化

2つの方法で追加できます:

新規レコーディング後:
Post-recording Wizardから「Capture Core Web Vitals」アクションを追加する。

既存のユーザーパスに追加:
デザインツリーでユーザーパス要素を右クリック → Advanced > RealBrowser → 対応するオプションを選択。

image.png


テストを実行する

実行中

Headlessをオフにして、実RealBrowser立ち上げ時のイメージ。複数ブラウザが立ち上がりテストを実施

通常はHeadlessで起動させるもので、イメージ向上のために取得

image.png

ログの確認

テスト実行中に問題が発生した場合は、通常のNeoLoadログに加えて browsers.log ファイルを確認してください。ブラウザ側のトレースとデバッグメッセージが記録されています。

ログフォルダは Help > Open log folder から開けます。

image.png


結果を分析する

テスト完了後、NeoLoad Web上でCore Web Vitalsの結果をページレベルで確認できます。各ページがユーザー視点でどのようなパフォーマンスを出しているか、粒度の細かい可視化が可能です。

image.png

このグラフだけみると
「INPが問題になる可能性があり、RealBrowserでしか見えないメトリクス」が確認できます。


まとめ

NeoLoadのRealBrowserを使うと、「本物のブラウザを使った負荷テスト」が意外と簡単にできます。特にSPAやクラウドネイティブなWebアプリのパフォーマンステストでは、プロトコルベースだけでは見えなかった問題を炙り出せるのが大きな強みです。

ポイントをまとめると:

  • NeoLoad 9.0以降でフルインストーラーを使えばRealBrowserが同梱される
  • レコーディングはChromiumを使って実際の操作を録画するだけ
  • waitForNavigation の設定はSPAテストで特に重要なのでハマったら見直す
  • Core Web Vitals(LCP・INP・CLS)はRealBrowserでしか取れないクライアントサイドメトリクス
  • VUごとにブラウザインスタンスが起動するため、Load GeneratorのCPU/メモリ設計に注意

参照

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?