前の練習では,仮想ユーザ・スクリプトの応答が実際のユーザを正確にエミュレートしていることを確認しました。次のステップとして,負荷テスト用のスクリプトを準備します。多数のユーザが同時に作業している場合,システムはどのように動作するでしょうか。システムの処理速度が許容できないレベルにまで低下しないでしょうか。
この練習では,スクリプトを拡張し,より効果的に負荷テストのプロセスを進めるためのさまざまな方法について学びます。
この練習は,次の項目で構成されています。
アプリケーションをデプロイするために準備するときは,ログオンに要した時間やフライトの予約に要した時間など,特定のビジネス・プロセスの実行時間を測定する必要があります。通常,各ビジネス・プロセスはスクリプトの 1 つまたは複数のステップやアクションで構成されます。仮想ユーザ・スクリプトでは,これらのアクションをトランザクションに含めることで,測定する必要のある一連のアクションを指定します。
トランザクションが含まれる仮想ユーザ・スクリプトを実行すると,LoadRunner は,トランザクションの実行に要する時間に関する情報を収集し,その結果を色付きのグラフやレポートで表示します。この情報を元に,アプリケーションがパフォーマンスの要件を満たしているかどうか判断できます。
トランザクションは仮想ユーザ・スクリプト内のどこにでも手動で挿入できます。一連のステップをトランザクションとしてマークするには,最初のステップの前に start_transaction マーカを挿入し,最後のステップの後に end_transaction マーカを挿入します。
本項では,ユーザがフライトを検索して確定するまでに要する時間を計測するためのトランザクションを,スクリプトに挿入します。
仮想ユーザ・スクリプトにトランザクションを挿入するには,次の手順を実行します。
ステップ・ツールボックスの[共通]の下で[lr_start_transaction]を選択し,エディタまでドラッグして,[web_image]ステップの前でドロップします。[トランザクションの開始]ダイアログ・ボックスが開きます。
ステップ・ツールボックスの[共通]の下で[lr_end_transaction]を選択し,エディタまでドラッグして,[web_submit_data]ステップの後ろでドロップします。[トランザクションの終了]ダイアログ・ボックスが開きます。
[find_confirm_flight]が[トランザクション名]ボックスに表示されることを確認し,[OK]をクリックします。VuGen は[lr_end_transaction]ステップをステップ・ナビゲータに挿入し,該当する lr_end_transaction 関数をエディタに挿入します。
これで,find_confirm_flight トランザクションが定義できました。
このエミュレーションでは,ユーザによるフライトの予約と通路側席の選択を追跡しました。ただし,実際の設定はユーザの好みによって異なります。したがって,テストを改善するために,ユーザが別の座席設定(通路側,窓側,または指定なし)を選択した場合でも予約が実行されるかどうかを確かめる必要があります。
これを実現するには,スクリプトを「パラメータ化」します。つまり,記録された値 Aisle(通路側)を受け取り,それをパラメータに置き換えます。パラメータの値はパラメータ・ファイルに記述します。スクリプトを実行すると,仮想ユーザは値(通路側,窓側,または指定なし)をパラメータ・ファイルから使用します。それによって,実際の旅行会社における環境がエミュレートされます。
スクリプトをパラメータ化するには,次の手順を実行します。
[OK]をクリックし,[フォームを送信ステップのプロパティ]ダイアログ・ボックスを閉じます。
これで,座席設定用のパラメータが作成されました。負荷テストを実行すると,仮想ユーザは記録された値 Aisle ではなくパラメータ値を使用します。
スクリプトを実行すると,反復ごとに発生するパラメータ置換が再生ログに表示されます。仮想ユーザは最初の反復に「Aisle」を使用し,2 番目の反復に「Window」を使用し,3 番目の反復に「None」を使用します。
テストを実行するときに,返されるページ上で特定の内容が見つかったかどうかを確認する必要があることがあります。コンテンツ・チェックは,スクリプトの実行中に期待どおりの情報が Web ページ上に表示されるかどうかを検証するものです。2 種類の内容チェックを挿入できます。
本項では,HP Web Tours の予約ページに「Find Flight」という語句が表示されるかを検証するテキスト・チェックを挿入します。
テキスト・チェックの挿入
VuGen は[web_reg_find]ステップをステップ・ナビゲータに挿入し,該当する web_reg_find 関数をエディタに挿入します。
スクリプトを再生すると,テキスト「Find Flight」が検索され,見つかったかどうかが再生ログに示されます。
テスト実行中の特定の時点で,スクリプト実行に関する情報を含むメッセージを生成して送信する必要があることがあります。これらの出力メッセージは[出力]ペインの再生ログと Controller の[出力]ウィンドウの両方に表示されます。標準の出力メッセージ,またはエラーが発生したことを示すメッセージを送信できます。
エラー・メッセージで作業を行う場合は,ステータスが失敗かどうかを検証する方法をお勧めします。ステータスが失敗の場合は,エラー・メッセージを発行するよう VuGen を設定します。詳細については,『HP LoadRunner Function Reference』の例を参照してください。
チュートリアルの本項では,アプリケーションによる予約が完全に済んだ後に出力メッセージを挿入するよう VuGen を設定します。
出力メッセージを挿入するには,次の手順を実行します。
lr_output_message 関数を選択し,エディタまでドラッグして,web_image 関数の後ろでドロップします。[出力メッセージ]ダイアログ・ボックスが開きます。
[OK]をクリックします。lr_output_message がスクリプトに追加され,該当するステップがステップ・ナビゲータに追加されます。
本項では,拡張スクリプトを実行して,テキスト・チェックを実行するために再生ログを検索します。テキスト・チェックの結果だけでなく,トランザクションおよびパラメータ化の詳細も表示されます。
画像およびテキストのチェックは必要なメモリ量が増えるため,標準では再生中は無効となっています。画像またはテキストのチェックを実行する場合は,実行環境の設定でチェックを有効にする必要があります。
スクリプトを実行します。
VuGen ツールバーの[再生]ボタン をクリックする。VuGen によってスクリプトの実行が開始され,再生ログのエントリが[出力]ペインに生成されます。
スクリプトの実行が完了するまで待ちます。
web_reg_find を検索します。
最初のインスタンスは次のようになっています。
web_reg_find が開始されました
[次を検索]をクリックして,web_reg_find の次のインスタンスを表示します。2 番目のインスタンスは次のようになっています。
これは実際のテキスト・チェックではなく,フォームの送信後にテキスト・チェックを行うように VuGen を準備しているだけです。
[次を検索]をクリックして,web_reg_find の次のインスタンスを表示します。このインスタンスは次のようになっています。
"Text=Find Flight" を対象とした web_reg_find の登録に成功しました(カウント = 1)。
これは,テキストが見つかったことを示します。だれかが Web ページを変更して語句「Find Flight」を削除した場合,以降の実行では,そのテキストが見つからなかったことが出力に示されます。
この練習で,スクリプトを作成して負荷テスト用に調整する作業が完了しました。次に,「練習 5: 負荷テスト・シナリオの作成」に進みます。
|