このセクションでは、さまざまな環境を構成して使用する方法について説明します。このセクションの内容:
環境とは
環境は、 レスポンダーまたはアクション スイート、そしてテスト コンフィギュレーションのフィールドの中で参照できる変数のコレクションです。環境変数を使用して、エンドポイント、データベース テーブル名、ログイン資格情報などの接続プロパティ、その他を指定できます。変数の名前は、アクティブな環境で割り当てられた値に置き換えられます。“アクティブな”環境を切り替えることで、実行時に環境固有の値を動的に切り替えることができます。
環境は仮想アセット モードの切り替えにも使用できます。たとえば、外部システムのエンドポイントにトラフィックを転送するレスポンダーを構成したと仮定します。エンドポイントに固定値の代わりに環境変数を使用することによって、異なるエンドポイントにメッセージ転送を簡単にリダイレクトできます。これは、 .pva ファイルがプロキシのような働きをすることを可能にします。 1 つの環境は実アセットを指し、同時に別の環境は仮想アセットを指すことができます。
環境は、WSDL などの定義から Parasoft アセットを生成すると自動的に定義されますが、以下で説明するように手動で定義することもできます。
手動での環境定義
環境の作成と切り替えは、
テスト スイートのテスト ケース エクスプローラー ノードまたはレスポンダー スイートの Virtualize アセット エクスプローラー ノードの [環境] ブランチで行います。
[環境] ブランチは、新規にテスト スイートまたはレスポンダー スイートを作成したときに自動的に作成されます。
新しい環境を追加するには、以下の操作を行います:
- [環境] ノードを右クリックし、[新規環境] をクリックします。
- 環境の名前を変更し (オプション)、テーブル内のフィールドをクリックして、環境変数と値を定義します。
変数値のマスキング
変数を右クリックして [変数値のマスク] を選択すると、インターフェイスで値を非表示にできます。
値をマスクすると、REST Client が解決された値を表示できなくなります。
テストとツールでの環境変数の使用
環境変数はツールのコンフィギュレーション フィールドで特別な構文を使用してアクセスできます。変数を参照するには、次の文字シーケンスで変数名を囲みます: ${env_name}
たとえば変数名が HOST の場合、変数名を参照するには、フィールドに${HOST}
と入力します。変数はフィールド内のどこからでも参照できます。
データ ソース エディターでは、参照する環境変数に soa_env
という接頭辞を付けます。例: ${soa_env:Variable}/calc_values.xlsx
変数はフィールド内のどこからでも参照できます。たとえば、環境に変数 HOST = localhost
および PORT = 8080
があり、SOAP Client の Endpoint フィールドに以下の値があるものとします: "http://${HOST}:${PORT}/Service
"。 テストの実行時、エンドポイントに使用される値は "http://localhost:8080/Service
" になります。
注意
${}
という文字列を使用する必要がある場合、バックスラッシュを付加することで文字列をエスケープできます。たとえば、\${HOST}
という文字列があった場合、${HOST}
という値が使用され、変数の解決は行われません。環境変数名では大文字/小文字が区別される点にも注意してください。GUI から環境を変更
アクティブな環境を変更するには、次の操作を行います。
- アクティブにする環境を表すノードを右クリックし、[アクティブな環境として設定] をクリックします。
コマンドラインから環境を変更
GUI でアクティブな環境を選択できるほか、-environment
オプションを使用してコマンドラインでもアクティブな環境を切り替えることができます。 詳細については「コマンドラインからのテスト実行 (soatestcli)」を参照してください。
テスト コンフィギュレーションでの環境の上書き
テスト ケース エクスプローラーでアクティブに設定された環境に関係なく、テスト コンフィギュレーションで常に特定の環境を使用してテストを実行するには、以下のように設定を実施します:
- テスト コンフィギュレーションの [実行]タブで [テスト実行中はデフォルト環境を上書く] オプションをオンにします。詳細については「[実行] タブ -テストの実行方法を定義する」を参照してください。
使用例
たとえば、ローカル マシンでサービスを開発しているとします。コードがローカルで動作するようになったら、コードをソース管理システムにコミットし、ステージング サーバーをターゲットとしたビルド プロセスを開始します。そこで、ローカル マシンとステージング サーバーの両方でテストを実行するテスト スイートを最小限の修正で作成したいとします。このような場合、SOAtest の環境を使用するのが最適です。
まず、新規 .tst ファイルで "Localhost Environment" という環境を作成します。SOAtest の [新規テスト (.tst) ファイル] ウィザードを使用すると、基本的な環境変数が用意されます。ローカル マシンとステージング サーバーで WSDL が異なる場合、WSDL URI を変数に分解します。WSDL のロケーションが変わらない場合、代わりにエンドポイント URI を変数に分解できます。
次のステップとして、プロジェクト内にあるその他のマシン固有の設定を特定し、それらに対応する環境変数を作成します。たとえば、テスト スイートに JMS を使用するステップがあり、ローカルホストでのテストとステージング サーバーでのテストで異なるキューにメッセージを送信する必要があるとします。この場合、まず新規環境変数 JMS_REPLY_QUEUE
を作成します。次に、再び SOAP Client を表示し、JMS 設定に移動して [JMSReplyTo] フィールドに ${JMS_REPLY_QUEUE}
と入力します。
"Localhost Environment" 環境を作成したら、環境をコピーして貼り付け、"Staging Environment" という名前に変更します。その後、ステージング サーバーの設定に合わせて各変数の値を変更します。
環境のセットアップが完了したら、アクティブな環境を選択するだけで、さまざまな環境に対してテストを実行できます。ローカル マシンに対してテストを実行する場合、"Localhost Environment" をアクティブな環境にします。すると、"Localhost Environment" で定義された値を使用してテストが実行されます。ステージング サーバーに対してテストを実行する場合、"Staging Environment" 環境をアクティブに設定すると、その環境の値が使用されます。
環境のエクスポート、インポート、参照
サーバー名やポートなどの多くのコンフィギュレーション設定が、多くのプロジェクトで共通していることがわかったとします。これらの設定を何度も指定する代わりに、環境設定を外部ファイルにエクスポートし、ファイルをインポートしたり、他のプロジェクトの値を参照することができます。
環境のエクスポート
環境をエクスポートするには、以下の操作を行います:
- エクスポートする環境のノードを右クリックし、[環境のエクスポート] をクリックします。
- ファイル選択ダイアログが開いたら、環境のエクスポート先ファイルの場所を指定します。
環境設定は XML ベースのテキスト ファイルに書き込まれます。1 つの環境を選択した場合、1 つの環境を保存した *.env という拡張子のファイルが 1 つ作成されます。 複数の環境を選択した場合、選択されたすべての環境を保存した *.envs という拡張子のファイルが 1 つ作成されます。
環境のインポート
環境をインポートすると、環境の外部ファイルからプロジェクトに値がコピーされます。その後、XML ファイルを変更しても、変更はプロジェクトに反映されません。
環境をインポートするには、以下の操作を行います:
- [環境] ノードを右クリックし、[環境のインポート] をクリックします。
- ファイル選択ダイアログが開いたら、インポートする環境ファイルの場所を指定します。
環境の参照
環境の参照は、1 つの環境設定を複数のプロジェクトで共有する最も効率的な方法です。環境の参照を使用すると、複数のプロジェクトの環境設定を 1 箇所で簡単に変更できます。
環境を参照するには、以下の操作を行います:
- [環境] ノードを右クリックし、[環境の参照] をクリックします。
- 画面右側に構成パネルが開いたら、参照する環境ファイルの場所を指定します。
環境構成を参照した後は、環境変数を直接に編集できなくなることに注意してください。プロジェクトは、常に参照された *.env ファイルの変数を使用するようになります。*.env ファイルを変更すると、それを参照するすべてのプロジェクトに変更が反映されます。