LoadRunner チュートリアル > 練習 5: 負荷テスト・シナリオの作成

練習 5: 負荷テスト・シナリオの作成

前の練習では,VuGen を使用して仮想ユーザ・スクリプトを検証しました。この練習では,複数の仮想ユーザの負荷がかかった状態でシステムを評価します。10 か所の旅行代理店による,フライト予約システムを使用した同時操作をエミュレートし,こうしたユーザの負荷がかかった状態でシステムの動作を観察します。このテストを設計して実行するには,LoadRunner Controller を使用します。

シナリオの目標

この練習の目標は,10 か所の旅行代理店がシステムに対して同時にログオンし,フライトの検索と購入および日程のチェックを行い,ログオフするまでの動作をエミュレートするシナリオを作成することです。

この練習は,次の項目で構成されています。

LoadRunner Controller の紹介

負荷テストとは,一般的な作業条件の下でシステムをテストすることです。たとえば,多数の旅行代理店が同じフライト予約システムで同時にフライトを予約する場合のシステムのテストがあります。

テストを設計する際は,実際の状況をエミュレートするように設計します。このためには,アプリケーションに対して負荷を生成できることと,負荷をいつ適用するのかについてスケジュールを設定できること(複数のユーザがシステムに対してログオンとログオフをまったく同時に実行することはないため)が必要になります。また,さまざまな種類にわたるユーザの操作や動作をエミュレートする必要もあります。たとえば,一部のユーザが Firefox を使用してシステムにアクセスし,一部のユーザが Internet Explorer を使用してアクセスする場合があります。また,モデム,DSL,ケーブルなど,異なるネットワーク接続を使用するユーザがいる場合もあります。これらの設定を,シナリオの中に作成して保存します。

作業環境を正確にエミュレートできるように,Controller にはテストの作成と実行の作業に必要なツールがすべて含まれています。

Controller の開始方法

シナリオ作成を開始するには,LoadRunner Controller を開きます。

  1. HP LoadRunner Controller を開きます。

    スタート]>[すべてのプログラム]>[HP Software]>[HP LoadRunner]>[Controller]を選択するか,デスクトップで[Controller]ショートカット・アイコンをクリックします。

    HP LoadRunner Controller が起動し,[新規シナリオ]ダイアログ・ボックスが表示されます。

  2. シナリオのタイプを選択します。

    2 種類のシナリオ・タイプが存在します。

    マニュアル・シナリオ」では,実行中の仮想ユーザの数や仮想ユーザの実行回数を制御でき,いくつの仮想ユーザをアプリケーションで同時に実行できるかをテストできます。パーセント・モードを使用すると,ビジネス・アナリストが指定するパーセントに基づいて,スクリプト間での仮想ユーザの総数を配分できます。インストール後,最初に LoadRunner を起動すると[パーセント モード]チェック・ボックスは標準で選択されています。選択されている場合は,クリアします。

    ゴール指向シナリオ」は,システムが特定のゴール(目標)を達成できるかどうかを調べるのに使用します。たとえば,特定のトランザクション応答時間,秒ごとのヒット数,秒ごとのトランザクション数などに基づいてゴールを決定すると,LoadRunner によって,それらのゴールに基づくシナリオが自動的に作成されます。

  3. 仮想ユーザ・スクリプトを負荷テストに追加します。

    このチュートリアルでは,仮想ユーザ・スクリプトを 1 つだけ使用して,同じアクションを実行する 1 つのユーザ・グループをモデル化します。より多様なユーザ・プロファイルを使用して現実世界のシナリオをより正確にエミュレートするには,多数の異なる仮想ユーザ・グループを作成し,各グループで異なるユーザ設定を持つ複数のスクリプトを実行します。

    以前に VuGen で記録したスクリプトには,テストを必要とするビジネス・プロセスが含まれています。これらのビジネス・プロセスには,ログオン,フライトの検索,フライトの購入,フライト日程のチェック,およびサイトからのログオフまでの過程が含まれています。同様のスクリプトをシナリオに追加し,これらのアクションをフライト予約システムで同時に実行する 8 つの旅行代理店をエミュレートするよう,シナリオを設定します。また,テスト中にさらに 2 人の仮想ユーザを追加します。

    このために,前の手順で作成したスクリプトとほぼ同じサンプル・スクリプトが用意されています。このサンプル・スクリプトを使用することをお勧めします。

    1. basic_script がすでに[利用可能なスクリプト]ペインにある場合,[追加]ボタンをクリックしてスクリプトを[シナリオのスクリプト]ペインに移動します。

    2. basic_script が[利用可能なスクリプト]ペインにない場合は,[参照]ボタンをクリックします。<LoadRunner インストール場所>\Tutorial フォルダで basic_script を探します。[開く]をクリックします。[追加]ボタンをクリックしてスクリプトを[シナリオのスクリプト]ペインに移動します。

    3. OK]をクリックします。LoadRunner Controller が起動し,新しいシナリオの[デザイン]タブが表示されます。

注: [デザイン]タブのコントロールは Controller の左下にあります。

Controller の概要

Controller の[デザイン]タブは,負荷テストを設計するための主なインタフェースです。[デザイン]タブは以下の 3 つのペインにわかれています。

  1. [シナリオ グループ]ペイン: 仮想ユーザ・グループは[シナリオのスクリプト]ペインで設定します。システムの典型的なユーザを表すさまざまなグループを作成し,実行する仮想ユーザ数,実行するマシンを指定します。
  2. [サービス レベル アグリーメント]ペイン: 負荷テスト・シナリオの設計時には,パフォーマンス測定値の目標,または SLA(サービス・レベル・アグリーメント)を定義できます。シナリオを実行すると,LoadRunner はパフォーマンスに関連するデータを収集し格納します。実行を分析すると,Analysis はこのデータを SLA に照らして比較し,定義されている測定値に対して SLA のステータスを判定します。
  3. [シナリオのスケジュール]ペイン: [シナリオのスケジュール]ペインでは,ユーザの動作を正確に演じる負荷動作を設定します。仮想ユーザが実行するアクション,負荷がアプリケーションに適用される割合,負荷テストの期間,および負荷の終了方法を定義します

.

スクリプトの詳細の変更方法

シナリオの詳細は次の方法で変更します。

  1. basic_script が[シナリオ グループ]ペインの[グループ名]カラムに表示されていることを確認します。

  2. グループ名]を変更します。

    1. シナリオ グループ]ペインで,basic_script を選択して[詳細]ボタン をクリックします。[グループ情報]ダイアログ・ボックスが表示されます。

    2. グループ名]ボックスに,よりわかりやすい名前を入力します。たとえば,travel_agent などと入力します。

    3. OK]をクリックします。この新しい名前は[デザイン]タブの[シナリオ グループ]ペインに表示されます。

システムで負荷を生成する方法

仮想ユーザ・スクリプトをシナリオに追加した後で,システムで負荷を生成するコンピュータである Load Generator を設定します。

定義: Load Generator とは,システムで負荷を生成するために複数の仮想ユーザを実行するコンピュータです。複数の Load Generator を使用し,それぞれの Load Generator で複数の仮想ユーザをホストできます。

本項では,シナリオへの Load Generator の追加と,Load Generator への接続のテストについて学びます。

Load Generator を追加します。

Controller ツールバーの[Load Generators]ボタン をクリックします。[Load Generator]ダイアログ・ボックスが開きます。

[Load Generator]ダイアログ・ボックスでは,シナリオで定義された Load Generator を表示して設定できます。[Load Generator]ダイアログ・ボックスには,localhost という名前の Load Generator の詳細が表示されます。localhost Load Generator のステータスは[ダウン]です。これは,Controller が localhost という名前の Load Generator に接続されていないことを示します。

このチュートリアルでは,ローカル・コンピュータを Load Generator として使用します。

注: 標準的な実稼動システムでは,Load Generator が複数あり,それぞれが複数の仮想ユーザのホストになります。

Load Generator への接続をテストします。

シナリオを実行すると,Controller が自動的に Load Generator に接続します。ただし,シナリオの実行を試みる前に接続をテストできます。

  1. [Load Generator]ダイアログ・ボックスで,localhost を選択して[接続]をクリックします。

    Controller が Load Generator マシンへの接続を試みます。接続が確立されると,Load Generator の[ステータス]が「ダウン」から「準備完了」に変わります。

  2. 閉じる]をクリックします。

実際の負荷動作のエミュレート方法

Load Generator の追加が完了すると,負荷動作を設定できるようになります。

通常,複数のユーザがシステムに対してまったく同時にログオンとログオフを実行することはありません。LoadRunner では,システムに対するユーザのログオンとログオフを段階的に実行することが可能です。また,シナリオの期間やシナリオの終了方法も決めることができます。次に設定するシナリオは比較的シンプルです。ただし,現実のシナリオをより正確に反映したシナリオをデザインする場合,より現実に近い仮想ユーザの動作を定義することができます。

Controller の[シナリオのスケジュール]ペインでマニュアル・シナリオの負荷の動作を設定します。[シナリオのスケジュール]ペインは,[スケジュールの定義]領域,[アクション]グリッド,および[対話式スケジュール グラフ]の 3 つのセクションにわかれています。

ここで,標準の負荷設定を変更し,シナリオ・スケジュールを設定します。

  1. スケジュールのタイプと実行モードを選択します。

    シナリオのスケジュール]ペインで,[スケジュール設定: シナリオ]と[実行モード: 実スケジュール]が選択されていることを確認します。

  1. スケジュール・アクションの定義を設定します。

    全体スケジュール]グリッドから,または対話式スケジュールグラフを操作することで,シナリオのスケジュールに[仮想ユーザ開始],[実行時間],および[仮想ユーザの停止]のアクションを設定できます。グラフから定義を設定した場合,[全体スケジュール]グリッドのプロパティは必要に応じて調整されます。

    定義を設定し,[全体スケジュール]グリッドが次のようになるようにします。

    1. 仮想ユーザの初期化を設定します。

      初期化とは,スクリプトで vuser_init アクションを実行し,負荷テストのための Vuser および Load Generator を準備することです。システム構成によっては,仮想ユーザを実行する前に初期化することで,より現実に近い結果が得られる場合があります。

      1. 全体スケジュール]グリッドの中で[初期化]をダブルクリックします。[アクションを編集]ダイアログ・ボックスが開き,[初期化]アクションが表示されます。

      2. すべての仮想ユーザを同時に初期化する]を選択します。
      3. OK]をクリックします。
    2. 仮想ユーザの段階的な開始を指定します。

      仮想ユーザを間隔を開けて起動することにより,サイトにおける仮想ユーザの負荷が時間とともに段階的に増える状況を調べることができ,どの時点でシステムの応答時間が低下するのかを正確に特定するのに役立ちます。

      1. 全体スケジュール]グリッドの中で[仮想ユーザ開始]をダブルクリックします。[アクションを編集]ダイアログ・ボックスが開き,[仮想ユーザ開始]アクションが表示されます。

      2. 待機期間 X 仮想ユーザ]ボックスに「8」を入力し,2 番目のオプション「2 仮想ユーザの間隔 00:00:30(30 秒)」を選択します。

      3. OK]をクリックします。
    3. 期間のスケジュールを設定します。

      期間を指定し,仮想ユーザがその指定の期間の間,スケジュール・アクションの実行を必ず続行するようにし,サーバにかかる連続的な負荷を測定できるようにします。期間を設定した場合には,スクリプトの実行環境の設定の中で設定した反復数に関係なく,スクリプトはその期間の間,必要な回数だけ何回でも反復して実行されます。

      1. 対話式スケジュール・グラフのツールバーの[編集モード]ボタン をクリックし,対話式スケジュール・グラフが編集モードになっていることを確認します。
      2. 対話式スケジュール・グラフで,実行時間を表す水平線をクリックします。線が強調表示され,両端に点とひし形が表示されます。

        注: ひし形の上に凡例が表示されます。対話式スケジュール・グラフのツールバーの[凡例を非表示]ボタン をクリックして,ひし形を表示します。
      3. 括弧内の時間が 00:11:30 になるまでひし形のエンドポイントを右にドラッグします。仮想ユーザが 10 分間実行するよう設定されました。
    4. 段階的に終了するようスケジュールを設定します。

      アプリケーションがしきい値に達した後にメモリ・リークの検出やシステム復旧のチェックができるように,仮想ユーザを段階的に停止することをお勧めします。

      1. 全体スケジュール]グリッドの中で[仮想ユーザの停止]をダブルクリックします。[アクションを編集]ダイアログ・ボックスが開き,[仮想ユーザの停止]アクションが表示されます。

      2. 2 番目のオプションを選択し,「2 仮想ユーザの間隔 00:00:30(30 秒)」と入力します。
      3. OK]をクリックします。

さまざまなタイプのユーザのエミュレート方法

負荷スケジュールの設定が完了したら,テスト中の仮想ユーザの動作を指定します。

実際のユーザをエミュレートするときは,ユーザの実際の動作を考慮する必要があります。動作には,ユーザがアクションの合間に一時停止する時間や,ユーザがアクションを繰り返す回数などがあります。

本項では,LoadRunner の実行環境設定について学び,思考遅延時間とログを有効にします。

  1. [実行環境設定]ダイアログ・ボックスを開きます。
    1. Controller で[デザイン]タブをクリックします。
    2. シナリオ グループ]ペインで travel_agents グループを選択します。
    3. [シナリオ グループ]ツールバーの[実行環境設定]ボタン をクリックします。[実行環境設定]ダイアログ・ボックスが開きます。

      実行環境の設定では,さまざまな種類にわたるユーザの操作や動作をエミュレートできます。説明する項目は次のとおりです。

      [実行論理]: 仮想ユーザが 1 組のアクションを繰り返す回数。

      [ペースの設定]: アクションを繰り返す前の待ち時間。

      [ログ]: テスト中に収集したい情報のレベル。シナリオを初めて実行するときは,最初の実行が失敗した場合にデバッグ情報が得られるように,ログ・メッセージを生成することをお勧めします。

      [思考遅延時間]: ステップ間でユーザが考えるために動作を停止する時間。ユーザは各自の経験レベルや目的に応じてアプリケーションとやり取りします。そのため,技術的に習熟したユーザの方が新規ユーザよりもすばやく作業を進める可能性があります。思考遅延時間を有効にすることによって,負荷テスト中に実際のユーザをより正確にエミュレートするよう,仮想ユーザを設定できます。

      速度のシミュレーション]: モデム,DSL,ケーブルなどの異なるネットワーク接続を使用するユーザ。

      ブラウザのエミュレーション]: さまざまなブラウザを使用してアプリケーションのパフォーマンスを確認するユーザ。

      [コンテンツ チェック]: ユーザ定義のエラーを自動的に検出します。

      エラーが発生したときにアプリケーションからカスタム・ページを送信するとします。このカスタム・ページには必ず単語「ASP Error」が含まれており,サーバから返されるすべてのページを検索して,テキスト「ASP Error」が存在するかどうかを調べる必要があります。

      実行環境設定の[コンテンツ チェック]を使用すると,テストの実行中にこのテキストを自動的に検索するよう LoadRunner を設定できます。LoadRunner によってテキストが検索され,検出された場合はエラーが生成されます。シナリオの実行中に,コンテンツ・チェックのエラーを特定できます。

  2. 思考遅延時間を有効にします。
    1. [実行環境設定]ダイアログ・ボックスで,[一般]>[思考遅延時間]をクリックします。
    2. 思考遅延時間を再生する]を選択し,[記録された思考遅延時間の乱数率を使用する]を選択します。
    3. 最小値として 50% を指定し,最大値として 150% を指定します。

      前述の指定では,記録された思考遅延時間の乱数率を使用して,多様な習熟度のユーザをエミュレートします。たとえば,フライトの選択に対して記録された思考遅延時間が 4 秒の場合,ランダムの思考遅延時間は 2 秒から 6 秒(4 の 50% から 150%)となります。

  3. ログを有効にします。
    1. [実行環境設定]ダイアログ・ボックスで,[一般]>[ログ]をクリックします。

    2. ログを有効にする]を選択します。
    3. ログ オプション]で,[常にメッセージを送信する]を選択します。
    4. 拡張ログ]をクリックし,[サーバが返したデータ]を選択します。

      注: 初めてデバッグを実行した後に,負荷テスト用に拡張ログを有効にすることはお勧めできません。このチュートリアルでは,仮想ユーザの出力ログの情報を提供するためだけの目的で有効にしています。
    5. OK]をクリックして,[実行環境設定]ダイアログ・ボックスを閉じます。

    6. シナリオを保存します。

負荷下のシステムの監視方法

テストにおける仮想ユーザの動作の設定が完了したら,モニタを設定します。

アプリケーションへの負荷の生成中に,アプリケーションがリアルタイムでどのように動作するか,また潜在的なボトルネックがどこに存在するか確認します。負荷テスト中にシステムの層,サーバ,コンポーネントごとのパフォーマンスを測定するには,LoadRunner の統合モニタ・スイートを使用します。LoadRunner には,Web サーバ,アプリケーション・サーバ,データベース・サーバ,ERP/CRM サーバなど,さまざまな主要バックエンド・システム・コンポーネントに対応したモニタがあります。

たとえば,稼働中の Web サーバのタイプに応じた Web サーバ・リソース・モニタを選択できます。また,たとえば IIS など関連するモニタ用のライセンスを購入し,そのモニタを使用して,IIS リソースに反映された問題を特定できます。

本項では,Windows リソース・モニタの追加方法と設定方法を学びます。このモニタを使用すると,CPU,ディスク,メモリの各リソースについて,負荷の影響を調べることができます。

  1. Windows リソース・モニタを選択します。
    1. Controller の下部の[実行]タブをクリックします。

      [Windows リソース]グラフは,グラフ表示領域に表示される 4 つの標準グラフの 1 つです。ほかのグラフを開く方法については次の練習で学びます。

    2. [Windows リソース]グラフ内を右クリックし,[測定値の追加]を選択します。[Windows リソース]ダイアログ・ボックスが開きます。

  2. 監視対象のサーバを選択します。
    1. [Windows リソース]ダイアログ・ボックスの[監視するサーバ マシン]セクションで,[追加]をクリックします。[マシンを追加]ダイアログ・ボックスが開きます。

    2. 名前]ボックスに「localhost」と入力します。(Load Generator を別のマシンで実行している場合は,そのマシンのサーバ名または IP アドレスを入力します)。
    3. プラットフォーム]リストから,マシンを実行するプラットフォームを選択します。
    4. OK]をクリックします。

      標準の Windows リソース測定値が[次を対象とするリソースの測定値: <サーバ マシン>]に表示されます。

  3. モニタを起動します。

    [Windows リソース]ダイアログ・ボックスで[OK]をクリックすると,ダイアログ・ボックスが閉じてモニタが起動します。

次の練習について

この練習で,負荷テスト・シナリオをデザインする作業が完了しました。次に,「練習 6: 負荷テストの実行」に進みます。


© 1993-2014 Hewlett-Packard Development Company, L.P.