GXtest の OpenSTA スクリプトの構築
Contents |
OpenSTA
OpenSTA は、性能テストのためのオープン ソース ツールであり、自動化テストケース、各テストケースで実行される HTTP(または HTTPS)リクエストを含むスクリプトの生成、および任意のアクションを実行するための修正(導入検証、条件、パラメーター化など)に使用されます。下図では、OpenSTA スクリプトの形式を理解することができます。
さらに、OpenSTA を使用すると、テストシナリオをマウントし、アクティブなユーザー数、イテレーション回数、ユーザーがシステムにアクセスする方法、およびその他のオプションを定義して、現実に即したシナリオを作成できます。下図ではシナリオの例を示しています。
パフォーマンスに関しては、次のような理由により、OpenSTA が最適なツールであると考えられます:
- 各コンピューターの負荷生成に関して大規模な仮想ユーザーを導入することができる。
- 負荷分散が容易である。
- Web アプリケーション志向のシナリオシミュレーションを構築するためのモデルを提供する。
- 次のような結果を解析するための数多くのオプションを提供する:グラフ、テーブルなど。
- 従来のツールよりも高い、開発の生産性を提供する。
他方で、OpenSTA の欠点は、テストケース記録のプロセスにあります。テストケースを記録するとき、生成された HTTP リクエストのスクリプトを取得します。そのため、アプリケーションの知識持っている作業者でなければ、各手順または各リクエストを実行するかどうかを識別するのが困難になります。多くの場合、より明確なスクリプトにするには、各手順のタイミングを制御するタイマーと同様に、記録中の各手順間のコメントを用意する必要があります。検証またはパラメータ化された変数を追加する場合、OpenSTA のスクリプトの実行は面倒な作業であり、アプリケーションのコードが常に変更されているプロジェクトでは、スクリプトを再生成する必要があることから、煩雑になりがちであると結論付けることができます。
OpenSTA 測定は JMX のような GeneXus のモニタリングツールによって補完されるので、性能テストに真価を発揮します。
GXtest で OpenSTA スクリプトを生成する
GXtest はパフォーマンススクリプトを簡単に記述するためのオプションを提供しています。
この新機能を使うと、GXtest で、過去に記録されたテストケースから OpenSTA のスクリプトを生成できます。これにより、テスト担当者には多くのメリットがあります:
- GXtest のテストケースの記録は、より実用的な方法で行われ、検証およびこのほかの記事に記載されているオプションを追加することができる。
- スクリプトの中でもっとも記述に時間がかかる部分を自動化できるため、同じ作業の繰り返しに費やしていた時間を削減できる。
- アプリケーションに変更があった場合、それらを GXtest に取り込み、スクリプトを簡単に再生成できる。GXtest で変更をもう一度記録する必要はない。
- 検証、タイマー、およびパラメーター化を手動で設定する必要がない。通常、これらの作業は非常に時間がかかり、かつ問題を発生させやすい。GXtest はこれらのエレメントすべてを自動的に設定することが可能。
- 一次リクエスト (HTTP)とは別のファイルに二次リクエスト(CSS、GIF、JPG、JS、など)がある場合、それぞれ別のスクリプトを用意する。これにより、分析を容易にするためのより明確なスクリプトの使用が可能。
- デバッグフラグを使用して二次リクエストおよびログメッセージに条件を設定できる。
- NTLM 認証をサポートしている。
- すべてのリダイレクトを自動的に管理する。
スクリプトジェネレーターの働き
GXtest の [OpenSTA スクリプトを生成] ボタンをクリックすると、パフォーマンススクリプトが生成されます。
OpenSTA のスクリプトを作成するリクエストが送信されると、ユーザーの画面上ではテストケースが通常どおり開始されます。ただし、内部では通常とは異なる処理が多く実行されています:テストケースの実行中に、テストで使われているすべての GXtest コマンドを含む xml ファイルが生成され、同時に saz ファイルに http リクエストが記録されます。これらのファイルは、GXtest Designer のインストールフォルダにある、テストケース名のフォルダに保存されます。通常は次のロケーションにあります:Abstracta\GXtest Designer\Performance\ExecutionLog\
「saz」形式は、Fiddler ツールに属しています。このツールは、インターネットと PC 間の HTTPトラフィックを記録するプロキシであり、ブレークポイントの導入、プロトコルレベルのリクエストの編集などによる分析が可能です。
これら 2 つのファイル (xml および saz) を元に、xml ファイルの GXtest コマンドおよび saz ファイルの http (または https) リクエストを使って、OpenSTA スクリプトが生成されます。実行が完了すると、実行されたすべての GXtest コマンド、各コマンドに含まれる、コマンドと関連付けられた http (または https) リクエスト、適切なタイマー、および (設定された場合は) 対応する検証が含まれたスクリプトが生成されます。さらに、GXtest のテストケースでデータプールから値を取得する変数を使用していた場合、OpenSTA のスクリプトではパラメーター化されます。これらのファイルは、Abstracta\GXtest Designer\Repository のフォルダに作成されます。
通常、生成されたスクリプトは、変更せずにそのまま実行できます。ただしシステムによっては、実際の環境にスクリプトを可能な限り近づけるために、スクリプトを変更して、条件、変数、検証などを追加する場合があります。
OpenSTA のインストール
Abstracta では OpenSTA の最後の公式リリースバージョンに対して、いくつかのバグを修正しています。これらの修正を適用するためには、OpenSTA の最後の公式リリースバージョンをインストールし、こちらから修正ファイルをダウンロードする必要があります。最後に、ダウンロードしたファイル内の「Read Me」ファイルに記載されている手順に従ってパッチを適用する必要があります。
まとめ
GXtest は、OpenSTA ツールによる性能テストで使用するスクリプトを作成することができます。GXtest からスクリプトを生成することで、テスターは反復して行うタスクから解放され、性能エラーの数を削減するためのほかの作業に集中することができるので、より良い品質の製品開発を実現できます。