このセクションの内容

Load Test について

Parasoft Load Test を使用すると、SOAtest の機能テストを再利用してアプリケーションのパフォーマンスや高い負荷の下での動作を検証できます。Parasoft Load Test には以下の機能があります。

  • 負荷テストのコンフィギュレーション/実行を一元管理し、Parasoft SOAtest とシームレスに統合します。これは、組織の典型的なチームやロールの構造に適合します。
  • 完全なエンドツーエンド テスト シナリオの負荷テスト—これには、Web インターフェイスからサービス、データベースまでが含まれます。Parasoft SOAtest でサポートされているすべてのプロトコルおよびテスト タイプが Parasoft Load Test でも利用できます。
  • Junit や軽量のソケットベースのコンポーネントなど、Parasoft 以外のコンポーネントで負荷テストを行うこともできます。これにより、負荷テストに関するさまざまなニーズに対応できる統合ソリューションとなっています。

Load Test は、指定された数と組み合わせの同時リクエストに対するサーバーのレスポンスをモニターするだけでなく、負荷がかかったときに機能に問題が発生するかどうかを検証します。あらかじめ用意されたシナリオを使用してアプリケーションの堅牢性とスケーラビリティを検証できます。シナリオは簡単にカスタマイズできるので、さまざまなテスト ケース、負荷レベル、負荷分散状況などを再現できます。また、複数のリモート サーバー マシンに仮想ユーザーを分散し、極めて高い負荷をシミュレートしたり、複数の場所からテストを行うことができます。Junit や軽量のソケットベースのコンポーネントなど、Parasoft 以外のコンポーネントで負荷テストを行うこともできます。これにより、負荷テストに関するさまざまなニーズに対応できる統合ソリューションとなっています。

負荷テスト中にネットワーク情報やシステム パフォーマンス データを収集できるよう、組み込みのモニターまたは拡張可能なモニター機能が提供されています。たとえば SNMP、rstat、WebSphere、Jboss、Tomcat、およびリモート モニターがサポートされています。拡張とデプロイメントが可能なモニター フレームワークにより、負荷がかけられているシステムから任意のメトリクスを取得してグラフ化し、メトリクスを視覚的に関連付けることによってパフォーマンスの問題を識別したり、メトリクスに対して期待されるサービス品質ポリシーを適用し、パフォーマンスおよび信頼性に関する要求に対するシステムの適合性を俯瞰することができます。

さらに、Parasoft Load Test は JUnit を使用したテストをサポートするほか、Parasoft 負荷テスト コンポーネント API を実装する任意のコンポーネントの負荷テストを実行するフレームワークを提供しています。たとえば、Parasoft コンポーネント API を実装する軽量のソケットベースのコンポーネントなどで負荷テストを実行することができます。これにより、パフォーマンスの検証を行う際に直面するユーザー独自の複雑な問題に合わせて負荷テストをカスタマイズできます。 

システム要件

単一の Load Test プロセスの場合は 4GB のメモリが必要であり、追加の Load Test プロセス 1 つにつき、さらに 2 GB が必要です。Load Test プロセス 1 つにつき 4GB のシステム メモリが推奨されます。

インストール 

Parasoft SOAtest のインストーラーは、Parasoft SOAtest および Parasoft Load Test の両方をインストールします。

Load Test の起動

Load Test を初めて起動する場合は、ライセンスを取得するよう求められる場合があります。詳細については、以下の「ライセンス」を参照してください。

Load Test を開くには、ツールバーの [Parasoft Load Test の起動] ボタンをクリックします。

コマンドラインからの Load Test の起動

コマンドラインから起動するときに、システム プロパティを Load Test に渡すことができます。

依存関係の同期設定

次の設定を行うと、Load Test は外部の依存関係を無視します。依存関係は、マシン構成パネルの [マシン依存関係] ビューには表示されません。

lt -J-Ddependencies.ignore=true

次の設定を行うと Load Test で依存関係が表示されますが、この設定はデフォルトでは無効になっています。 

lt -J-Ddependencies.default.unselect=true

Java のバージョンを確認する

-ask フラグを指定して Load Test を起動すると、実行したい Java 実行ファイルを指定するプロンプトが表示されます。これは、Java の別のバージョンまたは代替ディストリビューションで実行する必要がある場合に役立ちます。たとえば、SSL を介して WebSphere アプリケーションに接続するには、IBM JRE が必要です。IBM JRE をダウンロードし、Load Test を起動する際に -ask オプションを使用すると、代替の Java を指定するように促されます。詳細については「IBM WebSphere MQ」を参照してください。  

Windows:

loadtest -ask

Linux と MacOS

Load Test は、起動されるたびに loadtest.config 構成ファイルを検索します。このファイルが存在しない場合は、負荷テストを実行すると、ファイルが作成され、その場所がコンソールに出力されます。Java ランタイムを変更する場合は、構成ファイルを手動で編集する必要があります。例:

atrujillo$ ./loadtest
Found a new Parasoft Load Test installation. Parasoft Load Test will be configured.
Using /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/bin/java
Parasoft Load Test setup in /Users/atrujillo/Downloads/parasoft/soatest/9.10/Parasoft Load Test.app/Contents/MacOS/../../../Parasoft SOAtest.app/Contents/ParasoftSOAtest/eclipse/plugins/com.parasoft.ptest.libs.web_9.10.0.20161130/root completed successfully
Starting Parasoft Load Test...

コンソールは、最初の起動後に構成ファイルの場所を出力しない場合がありますが、構成ファイルは次のディレクトリに作成されるため、いつでも編集できます。  <SOATEST_INSTALL>/plugins/com.parasoft.ptest.libs.web_<VERSION>/root/<SOAVIRT_INSTALL>/plugins/com.parasoft.ptest.libs.web_<VERSION>/root/

ライセンス

Load Test を初めて起動すると、[ライセンス設定] ダイアログが表示されます。Load Test 内から [ライセンス設定] ダイアログにアクセスするには、[ファイル] > [ライセンス設定] に移動します。

Load Test のライセンス取得の手順は、ライセンスの種類によって若干異なります。

ノードロック ライセンスの場合:

  1. [ノードロック ライセンスを使用] を選択します。
  2. Parasoft 製品カスタマーセンターから提供されたライセンス パスワードを [パスワード] フィールドに入力します。ライセンスが適用されると、有効期限が自動的に入力されます。
  3. [OK] をクリックします。

License Server から提供されるライセンスの場合:

  1. [License Server を使用] を選択します。
  2. [仮想ユーザー] ドロップダウンから、License Server で使用可能なライセンスの仮想ユーザーの数を選択します。
  3. [ベース URL] フィールドに、License Server のベース URL をプロトコルで開始して入力します (例: https://license.example.com)。
  4. License Server で必要な場合は、[ユーザー名] および [パスワード] フィールドに License Server の認証情報を入力します。
  5. 必要に応じて、[接続のテスト] をクリックして接続をテストすることができます。
  6. [OK] をクリックします。

SOAtest の機能テストを使用した負荷テスト

Parasoft Load Test を使用すると、高い負荷をかけて機能テストを実行できます。Parasoft Load Test は、指定された数の仮想ユーザーまたは 1 秒あたりのヒット数 (ヒット率) を使用して、選択されたテスト スイートを繰り返し実行します。

Web 負荷テスト

ブラウザーベースの機能テストを使用してブラウザーなしの Web 負荷テストを行うには、SOAtest を使用して、機能テストを負荷テスト用に設定します。詳細については「負荷テスト用の機能テストの用意」を参照してください。

負荷テストの目的は、高負荷状態でのアプリケーション/サービス パフォーマンスおよび機能性を検証することです。この機能により、複数のスレッドおよび複数のユーザーを使用してテスト スイートを同時実行できます。

負荷テストを始めるにあたって一番良い方法は、複数のテスト クライアントを使用して、リクエストのサブミットとレスポンスの検証を含む完全な機能テストを実行することです。負荷テストで機能検証プロセスを無視して負荷率メトリクスだけに注目すると、特定の負荷状態でだけ発生する機能的問題のような致命的な欠陥を見逃すおそれがあります。

パフォーマンスを徹底的にテストするには、さまざまな異なるシナリオの下で機能テスト スイートを実行し、タイプの異なる負荷がどのように処理されるかをチェックするべきです。たとえば、異なるパターンで負荷を増加させながら (急激な増加や漸次的な増加など) 機能およびレスポンス時間をチェックしたり、有効なリクエストと無効なリクエストをさまざまに組み合わせてテストするなどです。負荷テストを実行し、高負荷状態で許容できないパフォーマンスや機能の問題が明らかになった場合、次のステップとして、ボトルネックの原因の解明と修正を行います。アプリケーションのアルゴリズムに根本的な問題があり、アプリケーションの再設計や再実装などの重大な修正が必要な場合もあるでしょう。あるいは、インフラの一部 (Web サーバー、SOAP ライブラリ、データベースなど) に問題があるケースもあるかもしれません。この場合、単に構成を変更するだけで問題が解決することもあれば、アーキテクチャの変更などの複雑な対処が必要なこともあるでしょう。

テスト スイート内のテストで接続、セッション、またはその他のテスト固有のリソース (OAuth 2.0 アクセス トークンなど) を再利用する場合は、これらのテストが属するテスト スイートで [グループとしてテストを実行] を有効にする必要があります (このオプションは、テスト スイートの [実行オプション] > [テスト実行] タブにあります)。このオプションにより、各仮想ユーザー (VU) がテスト スイート (シナリオ) 全体を実行できるようになるため、仮想ユーザーがテスト リソースを取得した際に、そのリソースを再利用することができます。[グループとしてテストを実行] ではなく [個別にテストを実行可能] が有効な場合は、テスト スイート内のテスト間でリソースを共有することなく、各仮想ユーザーはそれぞれ独立してテスト スイートのテストの中から 1 つのテストを実行します。

パフォーマンスの問題を修正するには、アプリケーションやシステムに大きな変更を加える必要がある場合もあるため、負荷テストはできるだけ早く開始するべきです。負荷テストを早期に開始すると、手遅れになる前に根本的な問題を発見して修正でき、大きなコードの変更や再構築といった悪夢のような作業をせずに済みます。

公開されたアプリケーションではなく、自分のアプリケーションでテストを実施してください

Parasoft は、公開されたアプリケーション (SOAtest のチュートリアルで参照されているアプリケーションも含む) に対して負荷テストを行うことを推奨しません。ユーザー自身のアプリケーションまたは Load Test のチュートリアルで使用されている ParaBank サンプル アプリケーションを使用してください。

外部の Jar ファイルまたはクラス フォルダーへの依存関係を設定する

外部の Jar ファイルまたはクラス フォルダーへの依存関係を持つ Extension Tool を使用する SOAtest プロジェクトを負荷テストする場合、以下の手順を行って、SOAtest Extension Tool が Load Test で依存先を見つけられるようにしてください。

  1. [Parasoft] メニュー > [設定] を選択します。
  2. [システム プロパティ] で、システム プロパティのクラスパス エントリに Jar またはクラス フォルダーを追加します (まだ追加されていない場合)。
  3. SOAtest を閉じます。
  4. Load Test が開かれていれば閉じます。
  5. Load Test を開きます。Load Test の設定には表示されていなくても、SOAtest のシステム設定から Jar が Load Test にインポートされます。
  • No labels