ウェブ負荷テスト:LoadRunner対LoadView | 実ブラウザ対プロトコルベースのパフォーマンス

この記事では、LoadRunner と LoadView をサンプルアプリケーション PhoneNumberMonitoring.com 上の実践的なテストシナリオで比較します。テストフローはシンプルです:

アプリケーション起動 → ログイン → タブ移動 → ログアウト

しかし、このフローの LoadRunner と LoadView での実装方法はまったく異なります。特に セットアップの手間、柔軟性、スケーラビリティ、実世界のシミュレーション精度において差があります。

LoadRunnerの使用:高い複雑性を伴うプロトコルレベルの制御力

LoadRunner は VuGen(Virtual User Generator) を利用した プロトコルレベルでの深い制御を提供し、HTTP/HTML、SAP、Webサービス、TruClient など複数のプロトコルをサポートします。これは企業向けテストには柔軟性をもたらしますが、基本的なフローの設定でさえ手間が多くなる場合があります。

今回のテストでは Web HTTP/HTML プロトコル を使用しました。これは完全なブラウザレンダリングが不要なウェブアプリケーションに適しています。

LoadRunnerでの作業内容

  • プロトコルの選択: HTTP/HTMLを選択。ただし、正しい録画モード(HTMLベースかURLベースか)を選ぶのは重要で、多くの場合試行錯誤が必要です。
  • VuGenでの録画: ポートマッピングを設定(スクリーンショット参照)、キャプチャレベル(WinInetまたはSocketなど)を選択しました。各レベルで動作が異なります。
  • 相関設定: web_reg_save_param_ex や JSONパスを用いて動的セッションデータを手動で抽出。相関を誤るとテストは失敗し、UIによる自動サジェストはありません。
  • パラメータ化: LoadRunnerのデータパラメータ化機能を使い、ハードコードされた値をデータファイルに差し替えました。
  • Think Time とトランザクション: 重要な操作を lr_start_transaction() で囲み、lr_think_time() でユーザー遅延をシミュレートしました。
  • セッション管理: クッキーやカスタムヘッダーを手動で管理しました。
  • 高度なロジック: if-else、ループ、C言語カスタムコードでフロー制御を追加しました。

LoadRunner VuGen script editor with WebSocket requests


LoadRunnerの主な課題と制限点

強力なツールである一方、LoadRunnerには いくつかの摩擦点があります:録画の複雑さ

  • HTMLベースかURLベースかの選択はスクリプトに大きく影響します。
  • WinInetかSocketレベルキャプチャかの選択は初心者を混乱させることがあり、一部アプリは特定のキャプチャモードでのみ正しく動作します。

ログトラブルシューティングとデバッグ

  • LoadRunnerのログは プロトコル固有で難解であり、HTTPログ、XMLダンプ、リプレイログが複数のタブに分散し、リアルタイムでの相関が困難です。
  • ライブユーザーセッションのリプレイ機能がないため、スクリプト再生中の問題点を視覚的に特定するのが難しいです。

プロトコル固有の相関

  • 各プロトコル(SAP、Oracle、HTTPなど)ごとに 異なる相関方法が必要です。

HTTP/HTMLプロトコル

web_reg_save_param , web_reg_save_param_ex, web_reg_save_param_json, web_reg_save_param_xpath (HTTP/HTML, Web Services), web_reg_save_param_attrib など

SAP GUIプロトコル

sapgui_get_text, sapgui_select_active_window, sapgui_set_property, sapgui_get_property, sapgui_status_bar_set_text など

Oracle NCAプロトコル

nca_set_window, nca_set_menu_item, nca_edit_set, nca_button_press, nca_get_text など

Webサービスプロトコル

web_custom_request、web_service_call など

  • 統一された相関フレームワークは存在せず、TruClientはHTTPプロトコルとはまったく異なる動作で相関ロジックを共有しません。

性能と使いやすさ

  • TruClientスクリプトはブラウザベースのフローをシミュレートしますが、システムリソースを多く消費し、実行に時間がかかります。
  • ビジュアルフロー編集は基本的で、デバッグ失敗時は複数のログウィンドウとスナップショットを切り替える必要があります。

LoadRunner recording options for WebSocket traffic

LoadRunnerによる分散負荷テストのセットアップ

  • LoadRunnerは複数のコンポーネントが必要:スクリプティング用のVuGen、オーケストレーション用のController、分散用のLoad Generators (LG) 。
  • 手動セットアップ、ファイアウォールルール、ポート開放、ネットワーク設定などが必要です。
  • スケーラビリティと実行オーケストレーションが複雑で、迅速な対応が求められるアジャイルチームには向きません。

LoadRunnerはレガシーシステムには強力ですが、モダンなウェブテストやスプリントベースの反復には理想的ではありません。

LoadViewの使用:シンプルなリアルブラウザ負荷テスト

LoadViewはクラウドネイティブのブラウザベース負荷テストというモダンなアプローチを提供します。ChromeやEdgeなどのブラウザ上で実際のユーザー行動をシミュレーションし、バックエンドの応答だけでなく**フロントエンド性能(UX指標)**まで検証します。

同じPhoneNumberMonitoring.comのフローでは、EveryStep Recorderを使用し、5分以内にテスト設定を完了しました。コード不要、設定不要、プラグインも不要です。

LoadViewが簡単に感じられた理由

  • 実際のユーザーのように録画: クリック、入力、スクロールなど、実際のユーザーが行う操作をそのまま記録。

EveryStep Recorder new script dialog with a website URL

  • 相関不要: LoadViewは動的値(トークン、セッション)を自動的にキャプチャ。
  • 完全なC#スクリプティングサポート: 上級ユーザー向けに、LoadViewはループ、条件分岐、変数宣言などC#の全機能をサポートし、フローを柔軟にカスタマイズ可能。

例:コンテンツ検証エラー時にスクリプト実行を中断する方法

EveryStep Recorder script code for multi-tab browser steps

  • プリセットクッキーとヘッダー: 実行前にリクエストヘッダー、認証情報、クッキー、ユーザーエージェントを設定し、実際の環境を正確に模擬可能。
  • 初心者向けだが専門家も対応可能: 簡単な録画で始められ、経験豊富なパフォーマンステスターのニーズにも応えられるシンプルさと強力さの稀有な組み合わせ。
  • 完全なブラウザレンダリング対応: SPA、AJAX、WebSocketをサポート、「見たものをそのままテスト」します。
  • 地理的分散テスト: 40以上のグローバルリージョンから選び、実際のユーザー所在地からの負荷をシミュレーション可能。

LoadView geographic load injector selection

  • ライブセッションリプレイ: テストの実行内容をページレンダリングや入力操作を含めてステップごとに視聴可能(LoadRunnerでは不可)。
  • フロントエンド指標: レポートから直接LCP(Largest Contentful Paint)、FCP(First Contentful Paint)、TTI(Time to Interactive)を確認可能。

LoadView request response timeline with timing details

  • ビジュアルフローエディター: コードやログを触らずに任意のステップを視覚的に編集可能。

EveryStep Recorder playback preview and script editor

機能比較:LoadRunner vs LoadView

機能LoadRunnerLoadView
録画オプション複数のキャプチャレベル(WinInet, Socket)、プロトコル選択1クリックのブラウザベース録画
スクリプティングの必要性あり – 高度なスクリプト、パラメータ化、相関なし – 録画して実行するだけ
動的値の処理手動 – プロトコルごと自動相関
リアルブラウザシミュレーションTruClientのみ(重く遅い)ネイティブChrome/Edge
フロントエンド指標TruClientで限定的完全対応(FCP、LCP、TTI)
ライブセッションリプレイなしあり – 再生可能
テスト作成時間45〜90分5〜10分
ログ分析複雑なプロトコルログ、手動相関UIベースのステップログ、スクリーンショット
プロトコル固有の対応アプリタイプごとに異なる(HTML、SAP、Oracle)すべてのウェブフローに対して統一レコーダー
分散テストLGとControllerが必要クラウド実行が組み込み
スキル要件高い – スクリプト作成とデバッグが必要低い – ビジネスユーザーもテスト可能
コストとライセンス高額な企業向けライセンス透明性のある使用量ベースの料金

実際のアプリケーション インパクト

ユースケースLoadRunnerLoadView
ECチェックアウト非同期トークンやJS遅延のスクリプティングが必要UX検証付きのリアルブラウザチェックアウトフロー
銀行ダッシュボード深い相関とトークントラッキングが必要ログインとセキュアダッシュボードナビゲートが簡単にシミュレーション可能
地理的負荷シミュレーション各地域ごとにLGセットアップが必要UI内のシンプルな地理選択ツール
アジャイルスプリントテストテスト修正と再実行が遅いテスト作成が迅速で再利用も容易
クライアントデモ・PoCセットアップと調整が必要録画してテスト結果を即共有可能

 まとめ

LoadRunnerを選ぶべき場合:

  • 深いプロトコルレベルのテストが必要な場合
  • レガシーアプリ(SAP、Oracle、メインフレーム)を扱っている場合
  • チームに技術的な熟練者がおり、専用インフラが整っている場合

LoadViewを選ぶべき場合:

  • モダンなブラウザベースのアプリをテストしたい場合
  • フロントエンド性能やユーザー体験を重視する場合
  • リアルブラウザ対応による、より速くシンプルなテストサイクルが必要な場合