負荷テスト: Webアプリケーションのためのパフォーマンステスト ビジネス

ビジネスホワイトペーパー
負荷テスト :
Web アプリケー
ションのための
パフォーマンス
テスト
目次
3
負荷テストの重要性
4
アプリケーション性能テストの必要性
5
自動パフォーマンステストのプロセスの概要
3
予測可能性を高めるために
5
自動負荷テストツールの特徴
5
ステップ 1: パフォーマンステストを計画する
7
ステップ 3: ユーザーの動作を定義する
6
8
9
10
11
12
ステップ 2: テスト対象となるビジネスプロセスを取り込む
ステップ 4: パフォーマンステストのシナリオを定義する
ステップ 5: 負荷テストのシナリオを実行し、パフォーマンスを監視する
ステップ 6: 結果を分析する
HP LoadRunner software : アプリケーションパフォーマンステストの把握
パフォーマンステストとベストプラクティス
ボタンを 1 回クリックするだけで利用できなけ
れば、オンラインビジネスの成功はあり得ませ
ん。長い待ち時間、遅延、エラー、あるいはサー
ビス停止は許されません。
予測可能性を高めるために
Web アプリケーションとモバイルアプリケーションの発達により、企業
における宣伝、マーケティング、および販売の方法は変化しました。ま
た、主要なビジネスプロセスの自動化が容易になったため、発注、支
払い、データ追跡、さらにはエンターテイメントの提供までもが短時
間で簡単にできるようになりました。Web アプリケーションで収集され
負荷テストの重要性
た大量の情報を活用すれば、より的確なマーケティング戦略を立てた
インターネットなしの世界はもはや考えられません。Web サイトを利用
高いサービスを顧客に提供したりできます。
り、特定の顧客をターゲットにしたり、よりパーソナライズされた質の
することで、ニュースを知り、エンターテイメントを楽しみ、人とコミュ
ニケーションし、生産性を高め、オンラインショッピングのための便利
な店舗を展開できます。しかも、いつでも、世界中のどこからでも、
しかし、事業経営と収益創出における Web アプリケーションへの依存
度が高まれば、それだけインターネットの複雑さを原因とする問題が
いかなるコンピューター / モバイルデバイスからでもアクセスできます。
発生するリスクも大きくなります。電子商取引が始まったばかりの頃、
提供するためだけでなく、主要なビジネス機能を自動化するためにも
アプリケーションの実稼働後もインフラストラクチャがユーザーの負荷
多くの企業は、自社 Web サイトを通じてより多くの製品とサービスを
大半の企業は実稼働前のパフォーマンステストに時間をかけておらず、
Web アプリケーションをますます利用するようになっています。
に対応できることを願いながらも、せいぜい手動テストを実施するだ
しかし、ボタンを 1 回クリックするだけで利用できなければ、オンライ
直後、あるいは販促キャンペーンやそれに続くトラフィックの増加の後
ンビジネスの成功はあり得ません。長い待ち時間、遅延、エラー、あ
に、Web サイトがダウンすることも珍しくありませんでした。しかし、
るいはサービス停止は許されません。
今日のビジネスは短期間であってもサービスを停止することは許されま
Web サイトは、ユーザーエクスペリエンスを低下させたり、ビジネスト
ランザクションを迅速・正確に処理する能力を妨げたりすることなく、
トラフィックや運用作業量の急増に対応できなければなりません。
本ホワイトペーパーでは、アプリケーションのパフォーマンスを測定す
ることの重要性を説明するとともに、負荷テストとパフォーマンステス
トのベストプラクティスを紹介します。また、優れたパフォーマンステ
ストのプロセスを構成しているさまざまなコンポーネントを検証するだ
けでなく、信頼性の高いパフォーマンステストのためのソフトウェアソ
リューションの特性についても考察します。その中で、業界最高レベル
のパフォーマンス検証ツールである HP LoadRunner software の概要を
明らかにしていきます。
けでした。当然のことながら、公開直後や大規模なアップグレードの
せん。また、インターネットに精通した顧客は、常に信頼性の高いサー
ビスとタイムリーな応答を期待しています。Web サイトが注文を受け付
けなくなったり、選択した商品が表示されるまで時間がかかり過ぎたり
すれば、顧客はすぐに別のサイトに移ってしまいます。競争が厳しく、
経済状況も不確かであることから、企業はオンラインアプリケーショ
ンの品質、信頼性、可用性、およびパフォーマンスに対して、以前より
も細心の注意を払わなければなりません。
今日の Web アプリケーションはますます複雑化しています。多面的で
統合されたインフラストラクチャ全体をスケーリングするためには、各
層の個々のコンポーネントのパフォーマンスと性能を管理する必要が
あります。加えて、システム全体における総合的なトランザクション応
答時間を測定する必要があります。
図 1: 複雑な Web インフラストラクチャの例
インターネット
クライアント
ルーター
スイッチ
Web サーバー
インターネット
ファイアウォール
ロード
バランサー
アプリケーションサー
バーと、
外部アプリケーション
と接続している
アプリケーション
データベース
サーバーと
その他の
データベース
サーバー
3
図2
VuGen では、システム全体における本番環境のワークロードのエミュレーションが可能です。
コントローラー
シミュレートされた
ユーザー
インターネット /
WAN
Web サーバー
アプリケーションサーバー
データベース
このように複雑であると、Web アプリケーションの一貫性やパフォーマ
また、手動テストは最も現実的な選択肢とは言えません。なぜなら、
ンス性能において多くの不確定要素が生まれます。このシステムは、
問題を正確に診断するためには、テストを複数回繰り返さなければな
場所や接続のタイプに関係なく、すべてのユーザーに一貫して迅速に応
らないからです。最初にパフォーマンス問題を特定したら、システムを
答できるだろうか。このアプリケーションで多数のユーザーに対応でき
チューニングし、再テストをしてそのチューニングの効果を確認する、
るか。ユーザー数が急増しても、スピードと信頼性を維持できるか。大
という工程を繰り返す必要があります。手動テストはビジネスの失敗を
量のトラフィックを処理するのに十分なハードウェアが各層に存在して
招きかねません。
いるか。システム内の相互運用可能なすべての構成要素が確実に連携
できるだろうか。アプリケーションの最大能力はどの程度なのか。上
記の疑問に答えるためには、Web アプリケーションの稼働を開始する
前に、そのアプリケーションが本番環境でどのように動作するのかを
予測できなければなりません。また、ライフサイクルを通じてシステム
を測定・監視し続けなければなりません。
アプリケーション性能テストの必要性
Web サイトのトラフィックが増加した際、一般的にはシステム内の各コ
ンポーネントにハードウェアを追加するという対応がとられます。しか
し、そのように行き当たりばったりでパフォーマンスを改善しようとす
ると、多くの場合不要なハードウェアまで購入することになります。ま
た、柔軟性を考慮して設計されたアプリケーションではないことが多
いため、パフォーマンスや拡張性が向上するとは限りません。システム
の動 作を正確に予 測するには、実 稼 働の前にアプリケーションのパ
フォーマンステストを徹底的に実行し、エンドユーザーの視点で応答
自動化されたパフォーマンステストツールを用いれば、自動的にテスト
を実行し、結果を測定できます。また、スクリプトとシナリオの作成・
保守を簡単でコスト効果の高い方法で行えるため、複数のテスト実行
で再利用でき、結果を正確に比較できます。自動テストツールを使用
することで、テスト中にヒューマンエラーが発生するリスクが低減しま
す。結果的に、あらゆる業種や規模の企業がビジネスクリティカルアプ
リケーションのパフォーマンスをテストする方法として、自動パフォー
マンステストを採用しています。自動テストツールは通常、次の 3 つの
主要なコンポーネントを使用してテストを実行します。
• 負荷とユーザー動作を編成し、実行し、管理するためのコントロール
コンソール
• 仮想ユーザー (Vuser) ̶ クライアントアプリケーション上でビジネス
プロセスを実行する実際のユーザーを再現するためのプロセス
• ロードサーバー (Vuser の実行に使用 )
上記コンポーネントを使用することで、自動負荷テストツールは次の操
時間を測定し、すべてのパフォーマンス問題を診断・解決するしかあり
作が可能になります。
ません。
• 手動テスターを自動 Vuser に置き換えること
アプリケーションのパフォーマンステストは、Web アプリケーションが
• 特定の場所から、あるいは世界中の複数の場所から、単一の負荷生
適正な応答時間を維持しながら、複数のトランザクションを同時実行
する能力を測定する方法です。また、パフォーマンステストを実施する
ことで、ネットワークインフラストラクチャ内のコンポーネントに存在
するボトルネックを探し出し、潜在的な問題を正確に特定できます。一
般的なパフォーマンステストの方法は、手動テストと自動テストの 2 つ
です。残念ながら、手動テストでは以下の点で課題があります。
• 数千人の同時ユーザーの動作のエミュレーション
• ユーザー操作のコーディネート
• 応答時間の正確な測定
• テスト実行、シナリオ、イテレーションの結果の比較
4
成マシン上で多数の Vuser を同時実行すること
• トランザクション応答時間の測定とインフラストラクチャコンポーネ
ントの監視を自動的に行うこと
• パフォーマンスを最適化するために加えた変更を検証するために、
負荷シナリオを反復実行すること
上記のような高度な機能を利用すれば、時間とリソースを確実に節約
できます。
表1
自動パフォーマンステストソリューションの主な特性は、精度と拡張性です。
精度
拡張性とキャパシティ管理
実際のクライアントアプリケーションに適用した負荷テストのスクリプトを記録
する。
容量を超える前に、1 台のマシンで実行可能な Vuser をより多く生成する。
クライアントアプリケーションとそれ以外のシステムコンポーネントの間のプロト Web サーバーに対する 1 秒あたりのヒット数をより多く生成する。
コルレベル通信を捕捉する。
柔軟性をもたらし、ユーザー動作の構成 ( 思考時間、接続速度、キャッシュ設定、 数千人の Vuser を管理する。
イテレーションなど ) を定義する機能を提供する。
トランザクションが成功するように、要求されたコンテンツがブラウザに返され
ることを確認する。
適切に管理された方法で Vuser 数を増やす。
問題の原因を特定できるように、理解しやすく容易に分析可能なパフォーマンス
の詳細な結果を提示する。
ワイヤレスエリアネットワーク (WAN) 上でリモートロケーションにスケールアウト
する影響をシミュレートする。
エンドツーエンドの応答時間を測定する。
実際のデータを使用する。
Vuser を動機して、ピーク時の負荷を生成する。
介入を減らしながら、システムの各層を監視する。
自動パフォーマンステストツールの特徴
ステップ 1: パフォーマンステストを計画する
負荷テストツールの最大の目的は、システムパフォーマンスの正確な予
このステップは、テストのニーズを理解するうえで不可欠なステップで
測とパフォーマンス問題の特定です。パフォーマンステストツールは、
あり、仕様に応じたスケーリングとパフォーマンスが可能なシステムで
パフォーマンス問題を特定するため、主要なシステムレベルのコンポー
あるかどうかを判断する材料となります。この段階で、ユーザー要件を
ネントを監視し、テスト実行中のボトルネックを検出します。自動ツー
パフォーマンステストの目的に変換する必要があります。負荷テストの
ルがどれだけ正確に実際のユーザーの動作をエミュレートできるかに
前に要件を徹底的に評価することで、現実的なテスト目標と条件の設
よって、精度が決まります。拡張性の高いツールであれば、少ないリソー
定が可能になります。
スで多くの負荷のシミュレーションが可能です。
自動パフォーマンステストのプロセスの
概要
統制のとれた方法でパフォーマンステストを行うことにより、リソース
• 主要なパフォーマンス目標を特定します。
テスト対象のプロセスとトランザクション、テストで使用するシステ
ムコンポーネント、および予測されるアプリケーションの同時接続の
数と 1 秒あたりのヒット数を特定します。また、エンドツーエンドの
ビジネスプロセス全体を見て、テストする必要のあるビジネスプロセ
を最適化し、ハードウェア / ソフトウェア / ネットワークの要件をより
スを明確化します。
設定できるようになります。また、アプリケーションやインフラストラ
たとえば、あるオンライン書店では、テストを目的として「書籍購入」
正確に予測し、サービスレベル合意書 (SLA) を満たすパフォーマンスを
クチャの変更がシステムパフォーマンスに悪影響を及ぼしていないこ
とを確認するために、テストプロセスを定期的に繰り返す必要もありま
す。自動パフォーマンステストプロセスのステップの概略を以下に記し
ます。
トランザクションにフラグを設定します。このトランザクションには、
選択した本の閲覧、購入する本の選択、決済情報と配送先情報の入
力、購入手続きの完了などが含まれます。負荷テストの目的を明確
に定義することで、SLA の簡潔な要約を提供し、テストによって達成
される目標を設定できるようになります。
• テスト用データを定義します。
テストで使用する入力データを定義する必要があります。このデータ
は、動的に作成することも、既存のリスト ( 顧客データベースなど )
から流用することも可能です。現実に即したデータを使用することで、
より精度の高い負荷テストを作成し、本番環境におけるシステムパ
フォーマンスをより正確に予測できるようになります。
5
• テスト方法を定義します。
アプリケーションをテストするための適切な方法を決定する必要が
あります。パフォーマンステストの種類を、負荷テスト、ストレステ
スト、キャパシティテストから 1 つまたは複数選択します。負荷テス
トは一般的に、アプリケーションが特定のユーザー負荷を受けたと
きのパフォーマンスを測定するものです。目標は、自社の Web アプ
リケーションが許容される応答時間を維持しながら、要求されるユー
ザー数に対応できるかどうかを判断することです。ストレステストは、
長時間にわたって負荷をかけ続けることによって、アプリケーション
の安定性と信頼性を検証する方法です。キャパシティテストを実行す
ると、システム障害が発生することなく、アプリケーションに同時ア
クセスできる最大ユーザー数を決定できます。
• テスト対象アプリケーションおよびテスト実行のインフラストラク
チャをレビューします。
次の点を含め、お使いのシステムのアーキテクチャーを確実に理解
しておく必要があります。
− ネットワークで現在使用しているルーターやネットワーク接続のタ
イプを定義します
− 複数のサーバーを使用しているかどうか判断します
− ロードバランサーを IP ネットワークの一部として現在使用してい
るかどうかを確認します
− 使用しているシステムの構成にどのサーバーが含まれているのか
を特定します (Web、アプリケーション、データベース )
また、Vuser の実行に使用できるリソースを把握しておく必要もありま
す。そのためには、適切な数の Vuser を実行するのに十分な負荷生成
できます。HP LoadRunner は最も重要なスクリプト情報を自動的に捕
捉して、簡潔で直感的で分かりやすいスクリプトを作成します。これ
により、最大 80% スクリプトの作成時間は短縮され、保守作業は軽
減されます。このようなスクリプトは保守も容易であるため、各ステー
トメントで起きている事を簡単に可視化できるだけでなく、他のテス
トのために修正が必要な要素が浮き彫りになります。
ツールやテストマシンが準備できているか判断します。さらに、テスト
スクリプトの生成が完了したら、ロジックやインテリジェンスを追加
ツールにマルチスレッド機能が搭載しているかどうか、および、実行さ
して、アプリケーションとやり取りする実際のユーザーを模倣したよ
れる Vuser の数を増やせるかどうかも確認しておく必要があります。最
り現実に即したスクリプトにすることができます。ロジックはトラン
終的な目標は、Vuser 数を増やしながら、システムリソースの消費を減
ザクションレベルに追加できるだけでなく、検証技術やパラメーター
らすことです。
化技術を使用しても追加できます。
ステップ 2: テスト対象となるビジネスプロセスを取り込む
− トランザクション : トランザクションとは、負荷時に測定される必
スクリプトレコーダーを使用して、すべてのビジネスプロセスをテスト
スクリプトに取り込みます。このテストスクリプトは多くの場合、Vuser
スクリプトまたは Vuser と呼ばれます。Vuser は、クライアントとして
アプリケーションとやり取りする実際のユーザーをエミュレートします。
お客様は、最初から最後まですべてのビジネスプロセスを特定し記録
する必要があります。そうすることで、ビジネスプロセスのパフォーマ
ンス測定に必要な時間を確認できます。
• HP LoadRunner を使用して仮想ユーザースクリプトを作成します。
Vuser ス ク リ プ ト を 作 成 す る に は、HP LoadRunner Virtual User
Generator (VuGen) を 使 用して、 ビ ジ ネスプ ロ セ スを 記 録しま す。
VuGen は、クライアントデスクトップで実行されるコンポーネントで、
クライアントアプリケーションとサーバー間の通 信を捕 捉します。
VuGen は、さまざまなプロトコル要求をサーバーに送信するという
方法で、実際のブラウザーの動作を正確にエミュレートすることが
できます。
HP LoadRunner に搭載されている Click and Script テクノロジーを使用
すると、ユーザーインターフェイスレベルでスクリプトを簡単に記録
6
要のある一連の操作を意味します。1 つのトランザクションは、1
人の顧客または 1 つの完全なビジネスプロセスによる複数画面に
またがる単一の操作の場合もあります ( オンラインで商品を選択・
比較・購入するエンドツーエンドプロセスなど )。
− 検証 : VuGen では、ContentCheck を使用した検証チェックポイント
を挿入することができます。ContentCheck は、返されたページを
分析して、アプリケーションが予想通りに機能することを検証しま
す。検証が失敗した場合、HP LoadRunner はエラーを記録し、そ
の失敗の原因 ( リンク切れ、画像の欠落、誤ったテキストなど ) を
ハイライト表示します。
パラメーター化 : 実ユーザーの動作を正確にシミュレートする
ため、スクリプト内の定数を変数またはパラメーターに置き換
える負荷テストの実行中、HP LoadRunner の Vuser では多様な
データセットが使用されます。Vuser は、パラメーターをデー
タソースからの値 ( フラットファイル、乱数、日付 / 時刻など )
に置き換えることができます。この機能により、さまざまなデー
タセットを使用したビジネスプロセスのテストが可能です。
図3
下記のグラフは、負荷時のアプリケーションパフォーマンスを示しています。
この例の場合、同時ユーザーの数が 7,500 に達するとアプリケーションの応
答時間は急増します。
16
14
12
10
8
6
4
2
0
図4
下記のグラフは、トランザクションの成功と失敗を示しています。この例の
場合、2 番目のトランザクションはおおよそ 3 回に 1 回失敗しています。こ
のトランザクションの重要度によっては、これほど高い失敗率はビジネスに
とって許容されるものではありません。
トランザクション数
120
応答時間 秒( )
100
80
60
40
20
0
1
1
2
3
4
5
6
7
8
9
2
3
ステップ 3: ユーザーの動作を定義する
ランタイム設定では、実際のユーザーを正確にエミュレートできるよう
にスクリプトの実行方法を定義します。設定を変更することで、思考
時間、接続速度、およびエラー処理のルールを構成できます。思考時
間は、顧客のアクションやトランザクションの複雑さに応じて変化しま
す。たとえば、顧客は自分のアカウント情報更新ページでは素早く操
作しますが、一方で商品の比較や決済情報の入力には時間をかけます。
システムの応答時間は、ユーザーの接続速 度によっても変化します。
WAN エミュレーションでは、ネットワーク帯域幅とレイテンシが異なる
多様な接続オプションが正確に模倣されます。この機能により、ネット
ワークがアプリケーションの応答時間に与える影響を確認することが
できます。エラーはシナリオのどこででも発生し、テストの進行を妨げ
る可能 性 があるため、エラー 処 理も 構 成しておく必 要が あります。
Vuser がエラーを処理するように構成しておくことで、中断のないテス
ト実行が可能になります。ネットワーク通信エラーもアプリケーション
の応答時間に深刻な影響を与えかねません。ネットワークエラーが発
生するように WAN エミュレーションを構成することで、その影響を理
解し、ネットワークエラーに対するアプリケーションの許容度を測定で
きます。
• HP LoadRunner を使用してユーザー動作を作成します。
HP LoadRunner では、実際のユーザーの動作をエミュレートするスク
5
6
ビジネストランザクション
10
ユーザー数 (単位: 千人)
4
成功
失敗
− キャッシュのエミュレーション : 特定のキャッシュサイズで閲覧を
するユーザーをエミュレートします。キャッシュ機能はサーバー要
件に応じて無効にできます。
− ブラウザーのエミュレーション : Vuser がシミュレートするブラウ
ザーを指定できます。
− 接続数 : サーバーとの接続数を Vuser が制御するようにできます。
− IP スプーフィング : 同じ物理マシンから Vuser に固有の IP アドレス
を割り当てることによって、IP 依存型コンポーネントのパフォーマ
ンスへの影響をテストします。
− イテレーション : Vuser スクリプトを繰り返すよう命令し、インター
バル間の待ち時間を指定して Vuser のペースを調整します。反復テ
ストでは、多様なデータを用いてプロセスが実行される回数に基
づいて、1 ユーザーの作業量が定義されます。
− エラー処理 : スクリプト実行中の Vuser によるエラー処理の方法を
制御します。HP LoadRunner では、再生中に Vuser がエラーに遭遇
した場合に続行する機能を有効にできます。
− ログファイル : Vuser のサーバー通信に関する情報を保存します。
標準のログ機能では、すべてのトランザクション、ランデブー、お
よび出力メッセージがマッピングされます。拡張ログ機能では、
警告とその他のメッセージが追跡されます。
リプトを構成できるように、包括的なランタイム設定が提供されてい
ます。次のようなランタイム設定が可能です。
− 思考時間 : テスト実行中に思考時間として一時停止を組み入れるこ
とで、Vuser がシステムとやり取りする速度を制御します。
− 接続速度 : さまざまなネットワーク速度でシステムに接続している
ユーザーをシミュレートします。
7
図5
HP LoadRunner の仕組み
2
3
数百人の仮想ユーザーが
実世界のトランザクション
を実行して、本番環境の
トラフィックをシミュレー
トします。
リアルタイムモニターが、すべての
層、サーバー、およびネットワーク
リソースからパフォーマンスデータ
を収集し、Controller に情報を表示
します。
4
1
結果はデータベースリ
ポジトリに保存され、レ
ポートの生成や分析の
実行に利用されます。
中 央コンソー ルである
Controller から負荷テストの
管理と監視を行います。
ステップ 4: パフォーマンステストのシナリオを定義する
できます。HP LoadRunner のシナリオウィザードを使用すると、複数
グループに関する情報とそれらのグループが実行される負荷マシンに
ウィザードでは分かりやすい 5 つの画面を通じて、Vuser をホスティ
パフォーマンステストのシナリオには、スクリプトを実行できる Vuser
ユーザーの負荷テストシナリオを短時間で作成できます。シナリオ
関する情報が含まれています。シナリオの実行を成功させるには、最
ングできるワークステーションおよび実行するテストスクリプトを選
初に顧客のトランザクションに基づいて顧客をグループ分けする必要
があります。次に、Vuser の総数を定義し、分配します。ビジネスプロ
セスごとに異なる Vuser 数を割り当てれば、複数のトランザクションを
実行するユーザーグループをエミュレートすることができます。第 1 グ
ループはある本を探していて、第 2、第 3 のグループは決済情報 / 配
送先情報を入力している、と設定できます。Vuser グループの割り当て
が完了したら、Vuser を実行する負荷生成マシンを決定する必要があり
ます。システムアーキテクチャーのクライアント側に負荷生成マシンを
追加すれば、追加の Vuser を実行できます。最後に、シナリオを実行
する方法を指定する必要があります。Vuser グループは時間差で実行す
ることも、同時に実行することも可能です。Vuser を時間差で実行する
ことにより、ユーザー負荷が増加して徐々にピークに達する状況を検証
できます。
• HP LoadRunner を使用して負荷テストのシナリオを作成します。
HP LoadRunner Controller を使用してシナリオを作成すると、テスト
および Vuser を一元的かつ包括的に把握できます。このコントロー
ラーを使用することにより、負荷テストのシナリオ作成が容易になる
ため、次のことが可能になります。
− 個々のグループへのスクリプトの割り当て
− テストの実行に必要な Vuser の総数の定義
− Vuser が実行されるホストマシンの定義
上記のほかに、HP LoadRunner ではシナリオウィザード、スケジュー
ラー、および TurboLoad を利用して、テスト効率を向上させることが
8
択します。
この段階を踏む中で、Vuser のシミュレーショングループも作成しま
す。HP LoadRunner のスケジューラーを使用すると、Vuser がレディ
状態および実行状態になるように、Vuser の数を増減できます。た
とえば、バッチサイズは一定の状態で、自社サイトにログインする顧
客数を徐々に増やしたい場合があります。これが「レディ状態」です。
この方法をとることで、システムに不要な負荷がかかるのを避けられ
ます。
スケジューラーは、スケジュール機能も管理します。また、ユーザー
不在時にもスクリプトを実行できる自動プロセスも搭載しています。
これは、リアルタイムではオフピークの時間帯 ( 午後 6 時∼午前 6 時
など ) にスクリプトを実行するのによく似ています。[Run Scenario] ボ
タンをクリックし、希望開始時間を入力するだけで、テストをスケ
ジューリングできます。
• ネットワーク影響テストを作成します。
ネットワークテストでは、Vuser グループのサーバーとの相対的な位
置に関する情報が使用されます。このテストでは、帯域幅の可用性、
競合、レイテンシ、エラー、ジッターなど、ネットワークの特性のみ
が変化します。Vuser の数は常に一定です。ネットワーク帯域幅の減
少またはレイテンシ / エラー / ジッターの増加を時間差で発生させる
ことで、アプリケーションの動作に与える相対的影響を把握できます。
このデータは、アプリケーション導入時のネットワーク要件を設定す
るのに役立ちます。この種のテストはネットワークを介してリモート
図6
VuGen では、Vuser を作成すべきビジネスプロセスを特定できます。
ビジネスプロセス
ブラウザー
アプリケーション
VuGen レコーダー
で実施できますが、テストが目的である場合には、WAN エミュレー
ションを使用して多様な状況を構築できる場所にネットワークをエ
スクリプト
• HP LoadRunner を使用して負荷テストシナリオを実行し、パフォー
マンスを監視します。
ミュレートする方がより実践的です。このようにすることで、リモー
シナリオの作成が完了すれば、テスト実行の準備が整いました。HP
トユーザーに対するパフォーマンスを予測できます。
LoadRunner のコントローラーには、負荷テストの実行中に多層型シ
• HP LoadRunner を使用してロケーションごとに負荷テストを定義しま
ステムの各コンポーネントを監視する一連のパフォーマンスモニター
HP LoadRunner には、WAN エミュレーションの処理機能が搭載され
されるので、その情報をエンドユーザーの負荷と応答時間に相関付
ユーザースクリプトを再利用できます。接続速度、レイテンシ、エラー
フォーマンスモニターは、テスト対象のシステムのあらゆるコンポー
す。
ているため、前のステップのネットワーク影響テストで使用した仮想
率などのネットワーク特性は、同じテスト実行で同時にエミュレート
が搭載されています。システム全体のパフォーマンスデータが取得
けて、ボトルネックを特定することができます。HP LoadRunner のパ
ネント (Web サーバー、アプリケーションサーバー、データベース、
される Vuser グループごとに変更されます。すると、各グループの応
ERP システムと CRM システム、ファイアウォール、ロードバランサー
アプリケーションの依存度を正確に特定できます。アプリケーション
ないハードウェアの制約やソフトウェア構成の問題を特定することが
答時間が受けるネットワークの影響、および、ネットワークに対する
の実稼働開始時に使用できるように、予測される応答時間のデータ
とネットワーク要件を記録します。
ステップ 5: 負荷テストのシナリオを実行し、パフォーマンスを
監視する
リアルタイム監視機能を使用すれば、テストの実行中はいつでもアプ
リケーションのパフォーマンスを確認できます。システムを構成するす
べてのコンポーネント ( クライアント、ネットワーク、Web サーバー、
アプリケーションサーバー、データベース、サーバーハードウェア ) を
監視する必要があります。リアルタイム監視機能を使用することで、テ
スト中に早い段階でパフォーマンスのボトルネックを検出できます。す
ると、テスト中にシステムのすべての層、サーバー、およびコンポーネ
ントのパフォーマンスを表示することができます。その結果、負荷テス
ト中にパフォーマンスボトルネックを瞬時に特定できるようになりま
す。これにより、テストプロセスの迅速化とアプリケーションの安定性
の向上が実現します。
など ) に適用できます。HP LoadRunner は、本来であれば検出され
できます。すべてのパフォーマンスモニターは非侵入型でハードウェ
アや OS に依存しません。そのため、リモート監視されるサーバー上
にエージェントをインストールする必要がありません。エンドユー
ザーの応答時間からアプリケーションのメソッドレベルにいたるま
で、各トランザクションを詳 細に監 視する場合は、HP Diagnostics
software を使用します。HP Diagnostics はパフォーマンステスト中、
インフラストラクチャの全層にわたってクライアント側からビジネス
プロセスを追跡します。そして、各トランザクションの応答時間を、
各層および個々のコンポーネントで費やされた時間に分 類します。
HP Diagnostics には次のような機能があります。
− 負荷がかかった状態で個々の層、コンポーネント、メモリ、および
SQL ステートメントがビジネスプロセスのパフォーマンス全体に与
える影響を把握するための、直感的で使いやすいビュー。
− テスト対象の特定のビジネスプロセスに関連のあるコンポーネント
をより簡単に特定する機能。
− ビジネスコンテキストに基づいて問題を選別・検出する機能。こ
の機能により、各チームはビジネスプロセスに影響を及ぼしてい
る問題にフォーカスできます。
9
図7
HP LoadRunner と HP Diagnostics の使用により、テスト中のシステムパフォーマンスを監視し、パフォーマンスのボトルネックを発生と同時に診断し、
問題の根本原因を特定することができます。
ステップ 6: 結果を分析する
テストデータの収集と処理は、パフォーマンスボトルネックの特定と解
決にとって不可欠なステップです。分析を行うことで、エンドツーエン
ドのテスト結果を要約し提示するのに役立つ一連のグラフやレポート
が生成されます。
• HP LoadRunner Analytics を使用して結果を分析します。
結果の分析は、負荷テストのプロセスで最も重要なステップかもし
れません。ここまでのところ、実際のユーザーのアクションを正確に
記録して再生し、パフォーマンス監視機能を使用して潜在的なボト
ルネックを調査することができました。では次に、テスト中に特定さ
れた問題を修正するステップに入ります。
まず、ネットワークスペシャリスト ( データベース管理者、コンサル
タントなど ) が、必要な変更をシステムに加えます。次に、スクリプ
トを再実行して、変更が反映されたことを確認します。
最後に、テスト前とテスト後の結果を比較することによって、システ
ムがどれだけ改良されたのかを測定できます。
HP LoadRunner の分析コンポーネントでは単一の統合環境が提供さ
れているため、テストサイクルを通じて生成された全データが一括収
集されます。HP LoadRunner の分析コンポーネントの高度な機能を
利用すれば、複数のシナリオの結果を比較し、ネットワークの各層
をドリルダウンして、ボトルネックを特定することができます。さらに、
HP LoadRunner の分析では高度なグラフとレポートが使用されるた
10
め、次のような疑問への答えが明らかになります。5,000 人の同時ユー
ザーの負荷がシステムにかかった時の Web サーバーの CPU メモリは
何だったか? 負荷テストの完了後、成功または失敗したトランザク
ションの総数はいくつだったか? Web サーバーが対応できる 1 秒あた
りのヒット数はいくつか? 各 Vuser の平均トランザクション時間は?
図 8 および 9 に HP LoadRunner の 分析グラフの 例を 示します。HP
LoadRunner は、下記リストのグラフを始めとするさまざまなパフォー
マンスグラフを提供します。
− パーセンタイル : 所定の時間内に実行されたトランザクションの割
合を分析します。
− 負荷時のパフォーマンス : シナリオの特定の時点で実行されてい
た Vuser の数に対する、トランザクション時間を示します。
− トランザクションパフォーマンス : シナリオ実行中の 1 秒ごとにト
ランザクションを実行するのに要した平均時間を表示します。
− トランザクションパフォーマンスのサマリー : シナリオの全トラン
ザクションに関して、最小、最大、および平均のパフォーマンス時
間を表示します。
− Vuser 別のトランザクションパフォーマンス : シナリオ実行中に
個々の Vuser がトランザクションを実行するのに要した時間を表示
します。
− トランザクションの分布 : トランザクションの実行に要した時間の
分布を表示します。
図8
このアクティビティグラフの例は、負荷テストで毎秒完了したトランザクショ
ン ( 成功と失敗の両方を含む ) の数を示しています。このグラフは、各企業
が任意の時点での実際のトランザクション負荷を特定する際に役立ちます。
6 分後にはアプリケーションに毎秒 200トランザクションという負荷がかかっ
ていることが分かります。
HP LoadRunner は次の 2 種類の Web グラフも提供します。
− 1 秒あたりの接続数 : シナリオ実行中の 1 秒ごとに、Vuser が Web
サーバーに接続した件数を表示します。
− スループット : シナリオ実行中の 1 秒ごとに、サーバー上のスルー
プット量を表示します。HP LoadRunner の分析では、対象データの
ユーザー分析プロセスを強化する目的で、結果の相関付けが行わ
れます。これにより、任意の 2 つの測定基準を使用して、基本の
グラフをカスタマイズすることができます。その結果、パフォーマ
ンス問題をより迅速に特定し、トラブルシューティングできます。
HP LoadRunner software : アプリケーション
パフォーマンスの把握が可能に
HP LoadRunner software は、アプリケーションパフォーマンステストの
図9
下記のグラフは、成功、失敗、中断、またはエラー終了したトランザクショ
ンの数を示しています。たとえば、
「Submit Search ( 検索実行 )」ビジネス
プロセスでは全トランザクションのうちの約 96% が成功しています。
HP LoadRunner は、最小限のハードウェアリソースを使用して数百、数
千の同時ユーザーをエミュレートし、ほぼすべてのアプリケーションプ
ラットフォームや環境に本番環境の負荷をかけます。アプリケーション
全体に、一貫性のある測定可能かつ繰り返し可能な負荷をかけ、アプ
リケーションにストレスを発生させます。次に、そのデータを使用し、
本番環境で実ユーザーに影響を与える可能性のある拡張性の問題を特
定します。
HP LoadRunner は、システムに対して負荷をかけ、ビジネスプロセスお
よびトランザクションでのエンドユーザー応答時間を取得します。非侵
入型のリアルタイムパフォーマンスモニターにより、あらゆる階層、サー
バー、およびシステムコンポーネントからパフォーマンスデータが取得
され、表示されます。優れた分析機能が搭載されているため、パフォー
マンスボトルネックの迅速かつ効率的な特定が可能です。
ための業界標準ソリューションです。HP LoadRunner は、極めて柔軟性
が高く、お客様自身が特定のプロジェクト要件に基づいてパフォーマ
ンステストを設計できます。HP LoadRunner を使用することで、実稼働
を開始する前にエンドツーエンドのシステムパフォーマンスを正確に把
握できます。これにより、次のことが可能になります。
• 新 規またはアップグレードされたアプリケーションが、指 定のパ
フォーマンス要件を満たしていることを検証
• 開発ライフサイクルにおいてパフォーマンスボトルネックを特定・削
減
• エンドユーザー、システムレベル、コードレベルのボトルネックを迅
速かつ容易に特定
11
広範なアプリケーションおよび
プロトコルに対するテスト
HP LoadRunner で、Ajax、Flex、Microsoft Silverlight、Web、SOA、Web
®
サ ー ビ ス、RDP、 デ ー タ ベ ース、 タ ー ミ ナ ル、Citrix、Java、.NET、
Oracle、および SAP など、広範なアプリケーション環境およびプロトコ
ルのパフォーマンステストをサポートしています。最新の使いやすいス
クリプティング / デバッグエンジンは、データ形式拡張機能および相関
スタジオを利用して、スクリプト作成をより高速かつ容易にします。
アプリケーションライフサイクルの早期段階で負荷テストを実行できる
HP LoadRunner の主な機能と利点
• 既存のレガシーアプリケーションとともに新しいテクノロジーのパ
フォーマンステストをサポート
• モバイルユーザーとインターネットユーザーが混在する環境を正確に
テスト
• パフォーマンス要件を満たさないシステムの配備を回避し、パフォー
マンスリスクを低減
• アプリケーションの拡張性とキャパシティを正確に予測することで、
ハードウェアおよびソフトウェアのコストを削減
よう、HP LoadRunner は主要な J2EE、Microsoft Visual Studio、および
• アプリケーションの本稼働前にインテリジェントなサービスレベル契
内から直接 HP LoadRunner スクリプトを作成できるため、開発者が早
• テストサイクルを短縮して、高品質なアプリケーションの開発を促進
®
Microsoft .NET 環境と統合します。この統合により、IDE ( 統合開発環境 )
い段階からパフォーマンステストに参画できるようになります。
アプリケーションテストのためのライフサイクル手法の一端を担う HP
LoadRunner は、HP QuickTest Professional、HP Quality Center、 および
HP Application Performance Center (APM) ソフトウェアとも統合します。
HP LoadRunner を補完するこれらのソリューションと併用することで、
テストプロセス全体の管理、リリースリスクの測定、およびリリース前
から本稼働までのテスト資産の再利用の促進を包括的に実現します。
パフォーマンステストとベストプラクティス
約の確立を支援
• エンドユーザー、システムレベル、コードレベルのボトルネックを迅
速かつ容易に特定
• アプリケーションライフサイクルの早期段階でのテストにより不具合
のコストを削減
HP が提供する負荷テストソフトウェアを使用し
てアプリケーションパフォーマンスを測定する方
法については、hp.com/go/loadrunner をご覧く
ださい。
運に任せて Web アプリケーションのパフォーマンスと信頼性を危険に
さらすわけにはいきません。多くの場合、企業の成功、収益、信用は、
IT アプリケーションがビジネスプロセスを適切にサポートできるかどう
か、そして、優れたユーザーエクスペリエンスを常に提供できるかどう
かにかかっています。
今日の Web テクノロジーは入り組んでおり、トラフィック量は多く、ト
ランザクションは複雑で、変更が頻繁に加えられます。そのため、ラ
イフサイクル手法を用いてパフォーマンステストを行わざるを得なく
なっています。つまり、ライフサイクル手法をすべてのアプリケーショ
ンのデリバリプロセスの一部に組み込む必要があります。パフォーマン
ステスト資産のプランニング、構築、保守、再利用のためのベストプラ
クティスを実践し、適切なツールを使用することで、失敗するリスクは
大幅に低減します。また、アプリケーションの拡張性と信頼性がライフ
サイクルを通じて維持されます。
詳細情報
実 環 境の負荷を 生 成し、問 題を 特 定し、診 断する方法については、
hp.com/go/performancevalidation ( 英語 ) を参照してください。
お客様同士や HP ソフトウェアエキスパートとの情報交換の場として、
hp.com/go/performancecommunity ( 英語 ) が運営されています。
HP ソ フト ウェア サ ー ビ ス の 概 要 は、managementsoftware.hp.com/
service をご覧ください。
インタラクティブなテクニカルサポートは、オンラインのソフトウェア
サポート (hp.com/managementsoftware/services) にアクセスしてくだ
さい。
ソフトウェア製品およびサービス関連の情報収集のためのワンストッ
プポータルである HP Software Customer Connection の詳細は、hp.com/
go/swcustomerconnection をご覧ください。
Get connected
http://hp.com/go/getconnectedjp
テクノロジートレンド、サポート情報、
および HP ソリューション情報をメールでお送りします。配信登録はこちら
© Copyright 2007, 2010, 2012 Hewlett-Packard Development Company, L.P. 本書の内容は、将来予告なく変更されることがあります。
HP 製品およびサービスに対する保証については、当該製品およびサービスの保証規定書に記載されています。
本書のいかなる内容も、新たな保証を追加するものではありません。本書の内容につきましては万全を期しておりますが、本書中の
技術的あるいは校正上の誤り、省略に対しては責任を負いかねますのでご了承ください。
Microsoft は、米国における Microsoft Corporation の登録商標です。Oracle および Java は、Oracle またはその関連会社、またはその
両方の商標です。
4AA1-3944JPN、2007 年 8 月作成、2012 年 6 月更新、第 2 版