...

IBM Rational Performance Tester V7.0 の紹介

by user

on
Category: Documents
54

views

Report

Comments

Transcript

IBM Rational Performance Tester V7.0 の紹介
IBM Rational Performance Tester V7.0 の紹介
レベル: 入門
Michael Kelly ([email protected]), コンサルタント, www.MichaelDKelly.com
2007 年 1 月 30 日
この記事では、Performance Tester V7 のいくつかの機能を紹介します。新機能の概要に加えて、機能
の一部を使用した基本的なテストのレコーディングと実行の方法も説明します。
Web アプリケーションのテスト
IBM® Rational® Performance Tester については多くの方が既にご存じかと思いますが、そうでない方の
ために、まず簡単に紹介します。Rational Performance Tester は、Web アプリケーションをテストし、展
開前にパフォーマンスの問題を発見して是正するためのツールです。求められる同時ユーザー数のエミュレ
ーションを行い、パフォーマンスの低い Web ページ、URL、およびトランザクションを明確にするレポートを生
成することにより、システムのボトルネックを展開前に特定することを可能にします。
高度な機能の 1 つとして、各ユーザー・グループのアクティビティーおよび使用パターンのレベルで詳細なテ
スト・スケジュール設定を行う機能があります。また、シミュレートされたユーザーが使用するテスト・データ・
セットをさまざまに変化させる自動化された「データプーリング」機能があります。テスト・エディターと統合され
たブラウザーのようなウィンドウを使用して、テストのレコーディング中にアクセスされた Web ページをレビュー
できます。さらに、上級テスター向けに、作成したパフォーマンス・テストにカスタム Java コードを挿入して、
高度なデータ分析や要求の構文解析といったアクティビティーを実行できるオプションもあります。
この記事では、Rational Performance Tester V7.0 のいくつかの機能を紹介します。新機能の概要に加
えて、機能の一部を使用した基本的なテストのレコーディングと実行の方法も説明します。
中核機能
IBM Rational Performance Tester V7.0 で利用できる機能の概要は以下のとおりです。実に数多くの
機能があります。開発に従事した IBM 社員はきわめて多忙でした。これらの機能の一部については後ほ
ど詳細を説明します。それ以外のものについては、ここで概要に触れるだけに留めます。すべての機能の詳
細については、Rational Performance Tester のヘルプに記載されています。
注意事項
この記事の執筆にあたっては、Microsoft® Windows® XP Pro SP2 オペレーティング・システム上で稼動
す る IBM Rational Performance Tester V7.0.0 、 お よ び 2006 年 11 月 11 日 時 点 で
の BookPool.com Web サイトが使用されました。BookPool.com Web サイトのコンテンツは継続的に更
新されているため、この記事に記載されている同サイトの内容は最新のものと異なる場合があります。さら
に、ごく入門的な紹介記事であるため、ここで作成するスクリプトは単にシステムからデータを読み出すだけ
のものであり、Web アプリケーションのテストに適切なコードの修正は行っていません。データ入力を伴うテス
トには、データプーリングなど、この記事で説明していない追加の手順が必要です。
Citrix と SAP のプロトコル・テスト
Citrix Presentation Server 拡張機能により、Citrix Metaframe Presentation Server 上で稼動する
Windows アプリケーションの負荷テストを行うことができます。これは、ウィンドウの作成と変更イベント、お
よび光学式イメージ認識技術を使用して、ユーザー入力をサーバー入力と同期させることにより可能となり
ます。Citrix アプリケーションを使用したセッションのレコーディングを行う前に、アプリケーションの動作が完
全に再現可能である必要があります。特に、アプリケーションは常に同じ場所に同じ順序でウィンドウ
と GUI 要素を作成しなければなりません。マウスまたはキーボードのイベントは常に同じ出力結果を出さ
なければなりません。
Citrix パフォーマンス・テストは Citrix Presentation Server クライアントときわめて下位のレベル (マウス
の動きとキーの押下) で対話を行うため、レコーディング後にテストに変更 (テスト要素の移動、ループまた
は条件の追加、新規シーケンスの挿入など) を加えると、エミュレーションされたユーザー操作のコンテキス
トが変わり、同期のタイムアウトが生じる可能性があります。テストを編集する際にはユーザー操作のコンテ
キストに注意を払う必要があります。
Citrix に加えて、SAP のテストも一部サポートされています。テスト内のどこでも、ループ、条件、トランザ
クションといったテスト要素を使用できます。また、テスト・スイート内の任意のポイントにレコーディングを挿
入することも可能です。SAP 用の検証ポイントは機能強化され、SAP の GUI オブジェクトのプロパティ
ーをキャプチャーし、オプションで期待値に照らしてチェックすることができるようになりました。さらに、SAP ア
プリケーションのレコーディングおよびプレイバックを行い、(SAP Web 構造を生成することにより) Web インタ
ーフェースでアクセスすることも可能です。
問題分析ツール
問題分析ツールは、次の 3 つのことを行います。
•
応答時間明細データの収集
•
リソース監視データの収集
•
収集したデータを分析してパフォーマンス問題の原因を特定するためのビューおよびツールの提供
ユーザーは、これらのことをデータ収集インフラストラクチャー内のデータ収集エージェントを使用して行い、デ
ータを実稼動または開発環境からトレース、監視、および記録することができます。また、Eclipse ベースの
ツールを使用して、コードとランタイム・データの表示と分析、およびそのデータの視覚的な関連付けを行う
こともできます。
パフォーマンスおよび問題分析ツールを使用することにより、分散パフォーマンス問題の原因となるコーディン
グの問題を発見して修正することができます。IBM® Performance Optimization Toolkit を使い慣れた
ユーザー向けに、これらと同じツールが、Rational Performance Tester 内にパッケージ化されているだけで
なく、組み込まれています。後述する機能説明 (リソース監視や応答時間明細など) で、これらのツール
の一部について詳細を説明します。
リソース監視
リソース監視データは、一定の間隔で定期的で収集される所見の一連のシーケンスで構成されます。デー
タはリアルタイムで収集するか、または IBM® Tivoli Enterprise™ Monitoring Server から取得することが
できます。応答時間明細データに加えて、リソース監視データでは、システムのより完全な全体像を把握
することができ、問題の特定に役立てることができます。収集および分析できるデータの例としては、次のよ
うなものがあります。
•
CPU 使用率 (合計、プロセッサー別、プロセス別)
•
使用可能メモリー
•
ディスク使用率
•
TCP/IP およびネットワークのスループット
この機能により、システムのより完全な全体像を把握することができ、問題の特定に役立てることができま
す。IBM® Tivoli® Monitoring エージェント、Windows Performance Monitor、または UNIX® rstatd モ
ニターを使用して、テスト対象システム (またはエージェント) を監視することができます。リソース監視デー
タを表示するには、Eclipse Test & Performance Tools Platform (TPTP) ビューアーまたは Rational
Performance Tester パフォーマンス・レポートのいずれかを使用できます。
応答時間明細
応答時間明細は、テスト対象システムが実行された際にシステムの各部分でどのくらいの時間が費やされ
たかを表します。応答時間明細ビューは、テストまたはスケジュールの特定の実行からのページ要素
(URL) に関連付けられています。これにより、HTTP ページ要素に関する応答時間統計の詳細を見て、
テスト対象システムの各部分でどのくらいの時間が費やされたかを知ることができます。応答時間明細を
使用すると、次のことが可能です。
•
コード問題を特定
•
どのサーバー上のどのアプリケーションがパフォーマンスのボトルネックであるかを把握
•
詳細を確認して、どのパッケージ、クラス、またはメソッドが問題の原因となっているかを正確に特
定
応答時間明細データをキャプチャーするには、テストまたはスケジュールで応答時間明細データのキャプチャ
ーを有効にし、キャプチャーするデータの量を構成する必要があります。応答時間明細データは、データ収
集インフラストラクチャー (Rational Performance Tester ツールのインストール時にインストールされます)
によって収集されます。アプリケーションが稼動する、データ収集元である各ホストに、データ収集インフラス
トラクチャーがインストールされ、稼動している必要があります。さらに、データ収集インフラストラクチャーを使
用するよう各アプリケーション・サーバーを構成 (または装備) する必要があります。
注: パフォーマンス・スケジュール全体について応答時間明細の収集を有効にするには、ある程度のメモリ
ー量が必要となるため、有効にする個所および時期については慎重に検討してください。
待望の新機能
次に紹介する 2 つの機能は、筆者が Rational Performance Tester の初回リリース時から待ち望んで
いた機能です。以前は、IP エイリアシングとクライアント・サイドのデジタル証明書のサポートがなかったため
、よくパフォーマンス・テストを行う一部のアプリケーション・タイプについて、Rational Performance Tester
を使用できませんでした。最新版には、この 2 つの機能が搭載されています。
IP エイリアシング
最新版の Rational Performance Tester には、待望の IP エイリアシング機能が搭載されています。デ
フォルトでは、スケジュールを実行すると、各仮想ユーザーに同じ IP アドレスが割り当てられます。しかし、
現実の世界では、アプリケーションの稼働中にそのようなことは起こりません。特定のタイプのアプリケーション
では、このことが、どのように負荷が分散されるかに影響を与えることがあり、さらに詳細なアプリケーションの
機能にまで影響を及ぼすことさえあります。この機能が搭載されたことにより、各仮想ユーザーを各自のホ
スト上で稼動しているかのように見せることができるようになりました。
これを行うためには、ホスト・コンピューター上に IP エイリアスを構成し、スケジュール内で IP エイリアシン
グを有効にします。スケジュールを実行すると、ネットワーク・トラフィックが複数のホストによって生成されるよ
うに見えます。IP エイリアシングにより、HTTP テスト実行中に負荷がさまざまな IP アドレスから発生して
いるように見えるようエージェントを構成できます。
デジタル証明書
デジタル証明書とは、公開暗号鍵に身元情報 (ユーザー個人または組織) を付加するファイルです。デ
ジタル証明書は信頼された認証局によって発行され、これを使用して Web サイト、電子メール・サーバー
、およびその他のセキュアなシステムへのアクセスの際にユーザーや組織の認証が行われます。認証ストアと
は、ほとんど無限の数の、場合によってはさまざまな認証局から発行されたデジタル証明書を格納すること
のできるアーカイブ・ファイルです。
Rational Performance Tester V7.0 では、次のことが可能です。
•
デジタル証明書を作成
•
データプールを使用してデジタル証明書にアクセス
•
これらのデータプールをテストに関連付ける
上記のことは、提供される KeyTool コマンド行プログラムを使用してデジタル証明書ストアを作成すること
により行うことができます。デジタル証明書を使用することにより、ユーザー認証のためにクライアント・サイド
のデジタル証明書を必要とするアプリケーション向けに、HTTP 上で SSL を使用して、サーバーに対して
テストのレコーディングおよび実行を行うことができます。
その他の機能
最後に、V7.0 リリースに含まれるその他の機能を紹介します。
•
Firefox または Mozilla ブラウザーを使用して HTTP アプリケーションのレコーディングを行う場
合、ブラウザーの構成を行う必要がなくなりました。
•
コンテンツ検証ポイントで、予期された結果と予期しない結果がサポートされるようになりました。
•
テスト内のホスト名の置換方法がヘルプに掲載されました。
•
テスト実行サービスのドキュメンテーションに、より広範なサンプルが掲載されました。
•
Performance Testing SDK (ソフトウェア開発キット) がインストール可能なオプションとして選択
可能となりました。
パフォーマンス・テスト・スクリプトの作成
パフォーマンス・テストの単純な例を見てみましょう。BookPool.com に対して小さな負荷を実行するテスト
です(実際、きわめて小さな負荷です、迷惑をかけるわけにはいきませんから)。以下の手順を追ってテスト
を行うにつれて、いくつかの新機能の詳細がわかるようになっています。その他の新機能については、該当
個所で言及します。
このテスト・スクリプトの作成は、次の手順で行います。
1.
「記録からテストを新規作成」ウィザードを開きます。
2.
図 1 のように、「HTTP 記録」を選択して、「Next」をクリックします。
図 1. 「記録からテストを新規作成」ウィザード
3.
図 2 のように、スクリプト名を入力します。このテストは、基本的な検索を実行してショッピング・カー
トに本を入れるテストであるため、この例ではその基本フローを表す名前 (bookpool) となっていま
す。
図 2. テスト名の入力
4.
「終了」をクリックします。
すると、図 3 のように、レコーダーが起動します。所要時間は 2 ~ 3 分です。
図 3. レコーダーの起動
5.
図 4 のように、Rational Performance Tester に切り替えると、レコーダー・コントロールによってレコ
ーディング中の操作が記録されていることがわかります。
図 4. Rational Performance Tester レコーダー・コントロール
レコーダーが起動すると、図 5 のように、ブラウザーが開かれて ReadMe ページが表示されます。このペー
ジでは、パフォーマンス・テストの一般的なプラクティスの概要を説明しています。(注: 構成によっては、
about:blank ページがロードされる場合があります。)
図 5. Rational Performance Tester の ReadMe ページ
6.
これは、テストのための公式起動ページです。アドレス・バーに www.BookPool.com という URL を
入力して、テストのレコーディングを始めます。
7.
図 6 のように、検索ダイアログ・ボックスに「Software Testing」と入力して「Search」をクリック
します。
図 6. 検索ダイアログ・ボックス
8.
検索結果ページがロードされたら、結果の 1 つ目の本の「Add to Basket」ボタンをクリックします。
筆 者 が こ の テ ス ト を 作 成 し た 時 は 、 1 つ 目 の 本 は 「 How to Break Software: Functional
and Security Testing of Web Applications and Web Services」でした (ちなみに、とてもいい本で
す)。図 7 のとおりです。
図 7. 検索結果の 1 つ目の本の例
9.
ショッピング・カート・ページがロードされたら、ブラウザーを閉じます。ブラウザーを閉じると、レコーディン
グ を 停 止 す る よ う Rational Performance Tester に 信 号 が 出 さ れ ま す 。 す る と Rational
Performance Tester によってスクリプトが生成され、図 8 のようにテスト・エディターで開かれます。
図 8. パフォーマンス・テスト: テスト・エディター
テスト・エディターでは、テストの HTTP ページのタイトル別リストが表示されます。リストを展開すると、各
ページ内の要求と応答のデータを見ることができます。エディターを使用して、レコーディングしたセッションか
ら自動生成されたテストを検査またはカスタマイズできます。あるいは、その気になればゼロからテストを記
述することもできます。
V7.0 では、以前は同じ画面にあった「共通のオプション」と「HTTP オプション」のいずれもそれぞれ
「テストエレメント詳細」セクションのタブとなっています。また、ビューの下部に「応答時間明細を使用可能
にする」チェック・ボックスがあります。
10. 「共通のオプション」タブの上をクリックすると、図 9 のように、テストのデジタル証明書を指定する画
面が表示されます。
図 9. 「Common Options」タブのデジタル証明書
この記事では、デジタル証明書や応答時間明細についてはとりあげません。
11. 図 10 のように「AddToCart」要素内の「応答時間明細を使用可能にする」オプションの選択を解
除します。BookPool アプリケーション内の詳細な情報を取得することができないため、応答時間明
細は取得することができません。
図 10. AddToCart で「応答時間明細を使用可能にする」を無効にする
これで、テストを実行するスケジュールを作成する準備が整いました。
スケジュールの作成
スケジュール機能では、テストのグループ化、テストの順序設定、およびリモート・ロケーションでのテストの実
行が可能です。スケジュールは、1 人の仮想ユーザーが 1 つのテストを実行するという単純なものから、さ
まざまなグループに属する数百人の仮想ユーザーが別々の時にさまざまなテストを実行するといった複雑な
ものまで自在に設定できます。ご存じかもしれませんが、スケジュール機能では次のことが可能です。
•
テストをグループ化してさまざまなユーザーの操作のエミュレーションを行う
•
テストを実行する順序を設定 (順次、ランダム、比重付き)
•
各テストを実行する回数を設定
•
一定のレートでテストを実行
•
1 つのテストまたは複数のテストをリモート・ロケーションで実行
システムの動作を反映したスケジュールを作成した後に、テスト対象アプリケーションの連続ビルドを使用し
て、または増え続ける仮想ユーザーを使用してそのスケジュールを実行できます。
スケジュールの作成は、次の手順で行います。
1.
プロジェクトを右クリックして、「新規」、「Performance Schedule」の順に選択します。
2.
図 11 のように、「Performance Schedule」ウィザードで、スケジュール名を入力して「終了」をクリック
します。
図 11. 「Performance Schedule」ウィザード
3.
これで、図 12 のように、1 つのユーザー・グループの新規スケジュールが作成されました。
図 12. 新規パフォーマンス・スケジュール
ユーザー・グループを使用すると、システム上のユーザーのさまざまなタイプを表すさまざまな特性を使用して
、テストを論理順序でグループ化することができます。図 12 は、実行中のユーザーの 100% を含む 1
つのグループを表します。したがって、現在のデータでは、この結果として、ユーザーの 100% が検索を行い
、カートに商品を追加し、最後に考えを変え、別の Web サイトの価格をチェックするためにサイトを去って
いることになります。
より現実的なユーザー分布を反映するために、ブラウザー、購入者、商店、および注文状況をチェックして
いるユーザーのグループを作成することが考えられます。そして、これらの各操作を表すスクリプトを作成する
のです。
また、このビューに新しいタブがいくつかあることに注目してください。この記事ですべてのタブについては説明
しませんが、2、3 のタブについて説明します。初めに、テストをユーザー・グループに追加します。
4.
ユーザー・グループを右クリックして「追加」、「テスト」の順にクリックします。
5.
図 13 のように、「パフォーマンステストの複数選択」ダイアログ・ボックスで「AddToCart」を選択して
「OK」をクリックします。
図 13. スケジュールに追加されたテスト
次に進む前に、IP エイリアシングのある場所を確認しましょう。
6.
ユーザー・グループをクリックすると、「スケジュール・エレメント詳細」セクションの下のテーブル内
に IP エイリアシングがあります。リモート実行場所を構成する際に、IP エイリアシングのオプションを設
定します。このテストについては、図 14 のように、「ローカル・コンピューターでこのグループを実行」オ
プションを選択したままにします。
図 14. 「User Group 1」要素詳細内の IP エイリアシング
7.
次 に 、 ユ ー ザ ー の 開 始 時間 を 変更 する 必 要が あ りま す 。 ス ケジ ュ ー ル の ル ー ト ・ ノ ー ドで あ る
「ScheduleOne」を選択します。
8.
「スケジュール・エレメント詳細」セクションの「一般」タブで、図 15 のように、「各ユーザーを開
始する間に遅延を追加」ボックスを選択します。
図 15. ユーザー数と、ユーザー開始間隔の遅延の設定
9.
図 15 のように、「Delay」に「100」
「ミリ秒」と入力します。「ユーザーの数」が「5」に設定されて
いることに注目してください。重要: ユーザー数を 5 または 10 より大きい数に設定しないでください
。BookPool.com がサービス妨害攻撃を被ることになっては困ります。
10. 図 16 のように、「考慮時間」タブを選択して、「考慮時間を最大値に制限」チェック・ボックスのチェッ
クを外します。思考時間に人工的な制限を加えることは特に希望しないからです。ここでは、「パーセ
ントによって考慮時間を増減」を始めとするさまざまなオプションから選択できます。
図 16. 考慮時間の設定
11. 「応答時間明細」タブは図 17 のようになります。
図 17. 応答時間明細オプションの設定
これで、スケジュールの実行準備が整いました。
スケジュールの実行
以上で、難しい個所は終わりました。スケジュールを実行するには、次の操作を行います。
1.
テスト・ナビゲーターで、「ScheduleOne」を選択します。
2.
スケジュールを右クリックして、「実行」、「Performance Schedule」の順に選択します。
すると、テストとレポート生成が起動します。旧バージョンでのすべてのレポートに加えて、新しいオプションと
機能が表示されます。例えば、平均応答時間を含むレポートでは、平均応答時間に対する標準偏差が
表示されるようになりました。さらに、特定の時間範囲についてのレポートを作成できるようになりました。こ
の記事では、すべてのレポートについては説明しませんが、新しい便利な応答時間明細機能の一部につ
いて説明します。
3.
図 18 のように、平均ページ応答時間を参照することが出来ます。
図 18. ページ・パフォーマンス
4.
グラフ上を右クリックして、「ページ・エレメント応答の表示」を選択すると、図 19 のように、各ページ
要素の平均時間が表示されます。
図 19. 「ページ・エレメント応答の表示」
その他にもさまざまなレポート・オプションがあります。レポート・オプションだけでも 1 週間程度でも試してみ
るとかなりの時間が費やされるはずです。まず試してみてください。その後に、その他のレポート・オプションの
詳細についてヘルプを参照してください。
次のステップ
この記事では、初心者の方向けに Rational Performance Tester V7.0 を使用した負荷テストについて
説明しました。このツールを使用してその他の種類のパフォーマンス・テストも実行できますが、最初の導入
としてはこのテストで十分なものとなっています。パフォーマンス・テストの基礎について理解したら、その他の
注目機能のいくつかを使ってみるとよいでしょう。
原則として、ツールを開くたびに新機能を 1 つずつ試していけば、手に負えなくなるということはないはずで
す。Rational Performance Tester のヘルプはとてもよくできています。また IBM® developerWorks®
Web サイトにもパフォーマンス・テストに関する有益なリソースがあります。参考文献セクションに挙げた先
進的な記事や、パフォーマンスおよび VU テスト・フォーラムの一読をお勧めします。
参考文献
学ぶために
•
developerWorks にある Performance Tester のリソース・ページでは、トレーニング、技術記事
、無料チュートリアルなどを提供しています。
•
「ソフトウェア品質のための IBM Rational の製品およびサービス」をご参照ください。
•
この記事で紹介した技術および、その他の技術に関するトピックを扱った書籍については、技術
書ブックストアから参照できます。
製品や技術を入手するために
•
Performance Tester V7 の体験版をダウンロードできます。
議論するために
•
パフォーマンスおよび VU テスト・フォーラムを閲覧したり、developerWorks コミュニティーに参加
できます。
著者について
Mike Kelly は現在、インディアナポリスにある Computer Horizons Corporation のソフトウェア・テスト・コ
ンサルタントを務めています。ソフトウェア自動化テスト・チームのマネージメント経験を有し、1999 年か
ら Rational ツールの業務に携わってきました。主な関心領域は、ソフトウェア開発ライフサイクル、ソフトウ
ェア・テスト自動化、およびプロジェクト・マネジメントです。記事のご感想などを電子メールでお送りください
。
Fly UP