このセクションでは、Extension Tool の作成と適用の方法について説明します。Extension Tool はユーザーが Java、 JavaScript、 Oracle Nashorn、Groovy、 Jython、またはその他の JSR 223「Scripting for the Java Platform」の仕様を実装するスクリプト エンジンを使用して作成したカスタム オペレーションを実行します。
セクションの内容:
カスタム スクリプト/Extension Tool とは
Extenstion Tool は、カスタム オペレーションを単独で実装することも、テスト スイートまたはレスポンダー スイートに連結して実装することもできます。テスト スイートに連結して実装することもできます。レスポンダー スイートに連結して実装することもできます。 この追加機能性は、 SOAtest および VirtualizeSOAtestVirtualize をユーザーの特定のニーズに合わせてカスタマイズすることを可能にします。実装するオペレーションは、ユーザーが使用しているスクリプト言語の機能にだけ制限されます。
スクリプトは、ゼロ、1、または 2 個の引数を取ることができます。出力のソースは、クライアント リクエスト、サーバー レスポンス、他のツールの出力、ルールの要素から生成されたもの、もしくは事前にユーザーが定義したものです。ルールで表現できないような、アプリケーション特有のチェックを実行したい場合に有効です。たとえば、出力がデータベースのレコードと一致するかどうかをチェックしたい場合などです。または、テスト中に役立つ任意の機能を実行するスクリプトを設計できます。
メソッドが引数を受け取らない場合、実行中にどのファイルが選択されるかは問題ではありません。メソッドが 1 つの引数を受け取る場合、入力は選択されたファイルまたは接続されたツールから取得されます。メソッドが 2 つの引数を受け取る場合、1 つ目はファイルまたは後続のツールから取得されます。2 つ目はファイルについてのコンテキスト情報を取得します。適用できるコンテキスト属性の詳細については、Scripting API を参照してください。Scripting API は [Parasoft] メニューの [ヘルプ] > [Scripting API] から開きます。
追加オプションは、SOAtest および Virtualize が起動時に毎回実行するスクリプトを作成することです。SOAtest が起動時に毎回実行するスクリプトを作成することです。Virtualize が起動時に毎回実行するスクリプトを作成することです。 これを行うには、Jython または JavaScript のスクリプトを作成し、<INSTALL>/plugins/com.parasoft.ptest.libs.web_<VERSION>/root/startup ディレクトリに追加します。
カスタム スクリプト/Extension Tool の作成
次の手順では、ツールバーに Extension Tool を追加する方法について説明します。また、テスト スイートに Extension Tool を追加し、Extension parameters panel に同じパラメーターを入力することで、カスタム メソッドを作成することも可能です。
SOAtest または Virtualize にカスタム スクリプト/Extension Tool を追加するには、次の操作を行います。
Extension Tool を追加します。次で説明されている手法の 1 つを使用します: エンド ツー エンド テスト シナリオ
Extension Tool のノードを テストケース エクスプローラーまたは仮想アセット エクスプローラーテストケース エクスプローラー仮想アセットエクスプローラーでダブルクリックします。右側にツールのコンフィギュレーション パネルが表示されます。
- [名前] フィールドにメソッド名を入力します。
ツールの戻り値がツールの成功を表す場合、[成否を表す終了コード] チェックボックスをオンにします。このチェックボックスがオフの場合、ツールの成否にかかわらず、 メソッドの戻り値を無視します。
- [言語] ドロップダウンリストからメソッドが書かれている言語を指定します。
- 大きなテキストフィールドに実装するスクリプトを定義します。
- Java メソッドの場合、[クラス] フィールドに適切なクラスを指定します。選択したクラスはクラスパスに追加されている必要があります。[クラスパスの変更] リンクをクリックし、表示される設定画面で追加できます。Java ファイルの修正やコンパイルの後にクラスをリロードする場合は、 [クラスのリロード] をクリックします。
その他のスクリプトの場合は、既存のファイルをメソッドのソース コードとして使用できます。
- 既存のファイルを使用するには、[ファイル] ラジオ ボタンを選択し、[参照] ボタンをクリックします。ファイル選択ダイアログでファイルを選択して [OK] をクリックし、選択を確定します。
Load Test 内で新しくメソッドを作成するには、[テキスト] ラジオ ボタンを選択し、入力やカット&ペーストを行ってテキスト ウィンドウにコードを入力します。
スクリプトが正しく実行可能であるかどうかを確認するには、スクリプトの指定方法に応じて [ファイル] または [テキスト] フィールドを右クリックし、ショートカット メニューの [評価] をクリックします。検出された問題がレポートされます。
- [評価] をクリックして、スクリプトがシンタックス エラーを含んでおらず、実行可能であることを確認します。
- [エラー メッセージ] フィールドに、ツールが失敗した場合にレポートされるエラー メッセージを指定します。
- パネルの下部にある [メソッド] ボックスから、適切な引数を選択します。このリストは、スクリプト内の定義から構成されます。スクリプトには複数の引数を含めることができるため、このメソッドで使用する引数を選択できます。
スクリプトでの変数の使用
${} 形式の変数 (たとえば ${value}
など ) を含むコンテンツをスクリプトが返す場合、連結された出力ツールがコンテンツを処理する前に、そのような変数は処理されます。変数が処理されるのを防ぎたい場合は、必ずスクリプト中で変数をエスケープしてください。
たとえば、元のスクリプトが以下の内容であるものとします。
def handler(input, context) { def output = '{ "field": "${value}" }'; com.parasoft.api.Application.showMessage(output); return output; }
${value}
が処理されるのを防ぐには、スクリプトを次のように変更します。
def handler(input, context) { def output = '{ "field": "${value}" }'; output = output.replace('${', '\\${'); com.parasoft.api.Application.showMessage(output); return output }
その他のスクリプトに関するリソース
スクリプト機能に関連する課題の概要とさまざまなアプリケーションについては、「スクリプトを使用した拡張機能の基礎」を参照してください。「スクリプトによる SOAtest の拡張」では、カスタム スクリプトの適用方法をステップバイ ステップで説明しています。