このセクションでは、webMethods ツールを設定して適用する方法について説明します。webMethods ツールを使用すると、Software AG webMethods Broker に BrokerEvent オブジェクトをパブリッシュして送るだけでなく、イベントをサブスクライブし、ネイティブの webMethods IS (Integration Server) サービスを呼び出すことができます。このセクションの内容:
ブローカーとの連携
設定の手順は、使用する実行モード (パブリッシュ、サブスクライブ、リクエスト/リプライ) によって異なります。
必要な JAR ファイルのクラスパスへの追加
以下の JAR ファイルを SOAtest のクラスパスに追加する必要があります。
- wmbrokerclient.jar
- g11nutils.jar
JAR ファイルは [webmethods install dir]/Broker/lib/ の下にあります。詳細については、『webMethods Broker Client Java API Programmer's Guide』の 「Getting Started」> 「Using the webMethods Broker Java API」 を参照してください。
場合によっては、enttoolkit.jar と mail.jar も必要です。
これらの JAR ファイルを SOAtest のクラスパスに追加するには、以下の操作を行います。
- [Parasoft] メニューの [設定] をクリックします。
- [Parasoft] > [システム プロパティ] ページを開きます。
- [Jar の追加] ボタンをクリックし、必要な Jar ファイルを選択して追加します。
パブリッシュ実行モードの使用
webMethods ツールを設定して BrokerEvent オブジェクトをパブリッシュするには、以下の操作を行います。
- ツールの設定パネルを開きます。
- [ツール設定] タブを開きます。
- 以下のようにツール設定を指定します。
- [webMethods] から [ブローカー] を選択します。
- [実行モード] から [パブリッシュ] を選択します。
- [ホスト]、[ブローカー名]、[クライアント グループ]、[クライアント ID] フィールドで、ブローカーに接続するための設定を指定します。
- [アプリケーション名] フィールドで、アプリケーションを特定するために使用する名前を入力します (SOAtest)。
- [リフレッシュ] をクリックします。[イベント タイプ] メニューに、ブローカーで利用できるイベント タイプが表示されます。
(オプション) 目的のフィールド値があるイベントだけを取得するために、[サブスクリプション フィルター] でフィルター文字列を指定します。たとえば、次のような式を使用できます。
my_Strin_field="some value" and my_int_value < 5
フィルター文字列の構文の詳細については、『webMethods Broker Client Java API Programmer's Guide』の「Using Event Filters」セクションを参照してください。- [イベント タイプ] で、パブリッシュするイベント タイプを選択します。
- [タイムアウト] エリアで、必要であればタイムアウト時間とタイムアウト条件をカスタマイズします。
- [タイムアウトが発生した場合だけテストは成功する] オプションを選択していて、指定したイベント タイプで BrokerEvent が取得された場合、webMethods ツールは失敗します。これは通常、エラーイベント タイプをサブスクライブするために役立つほか、テスト シナリオの一部としてエラー イベント タイプがパブリッシュされないようにするために役立ちます。
- [入力] タブをクリックします。
- 利用可能なコントロールを使って、パブリッシュする BrokerEvent オブジェクトを指定します。
- 利用可能なオプション (フォーム XML、リテラル XML、スクリプト、フォーム入力) と関連するコントロールは、SOAP Client ツールや他のメッセージング ツールと同じです。詳細については、「Input Modes」 を参照してください。
- フォーム XML、リテラル XML、フォーム入力を使用していて、デフォルトの入力テンプレートを生成したい場合、[リフレッシュ] をクリックします。
- スクリプト モードでは、オブジェクトを直接操作することができます (たとえば、GUI や XML 表現ではなく、webMethods API を使ってスクリプトでフィールド値を設定したい場合など)。詳細については 「スクリプト入力の指定」 および 「スクリプトを使用した拡張機能の基礎」 を参照してください。
BrokerEvent オブジェクトの詳細については、『webMethods Broker Client Java API Programmer’s Guide』の COM.activesw.api.client.BrokerEvent ドキュメントを参照してください。
テストの実行中 SOAtest は、ブローカー クライアントの Java API を呼び出してそれを BrokerEventobject に提供することで、イベントをパブリッシュします。そのイベント タイプにサブスクライブされるアプリケーションは、SOAtest がパブリッシュしたイベントを受け取ります。
パブリッシュされるイベントの XML 表現を参照するには、Traffic Viewer ツールを使用します。このツールは自動的に webMethods ツールに連結されます。なお、実際の BrokerEvent オブジェクトが送受信されても、Traffic Viewer ツールは XML 表現を使用します。XML 表現が読みやすくなると共に、ユーザーはコンテンツを検証したり処理したりするツール (たとえば Diff ツールや XML Assertor ツール) を連結することができます。
サブスクライブ実行モードの使用
BrokerEvent オブジェクトをサブスクライブするように webMethods ツールを設定するには、以下の操作を行います。
- テスト ケース エクスプローラーで webMethods ノードをダブルクリックし、ツールの設定パネルを開きます。
- [ツール設定] タブを開きます。
- 以下のようにツール設定を指定します。
- [webMethods] から [ブローカー] を選択します。
- [実行モード] から [サブスクライブ] を選択します。
- [ホスト]、[ブローカー名]、[クライアント グループ]、[クライアント ID] フィールドで、ブローカーに接続するための設定を指定します。
- [アプリケーション名] フィールドで、アプリケーションを特定するために使用する名前を入力します (SOAtest)。
- [リフレッシュ] をクリックします。[イベント タイプ] メニューに、ブローカーで利用できるイベント タイプが表示されます。
- [イベント タイプ] で、サブスクライブするイベント タイプを選択します。
テストの実行中、 SOAtest は指定されたイベント タイプにパブリッシュされるイベントのリスニングを開始します。
受け取られるイベントの XML 表現を参照するには、Traffic Viewer ツールを使用します。このツールは自動的に webMethods ツールに連結されます。なお、実際の BrokerEvent オブジェクトが送受信されても、Traffic Viewer ツールは XML 表現を使用します。XML 表現が読みやすくなると共に、ユーザーはコンテンツを検証したり処理したりするツール (たとえば Diff ツールや XML Assertor ツール) を連結することができます。
リクエスト/リプライ実行モードの使用
BrokerEvent オブジェクトを送信し、次のオブジェクトを送信する前にリプライを待つように webMethods ツールを設定するには、以下の操作を行います。
- テスト ケース エクスプローラーで webMethods ノードをダブルクリックし、ツールの設定パネルを開きます。
- [ツール設定] タブを開きます。
- 以下のようにツール設定を指定します。
- [webMethods] から [ブローカー] を選択します。
- [実行モード] から [リクエスト/リプライ] を選択します。
- [ホスト]、[ブローカー名]、[クライアント グループ]、[クライアント ID] フィールドで、ブローカーに接続するための設定を指定します。
- [アプリケーション名] フィールドで、アプリケーションを特定するために使用する名前を入力します (SOAtest)。
- [リフレッシュ] をクリックします。[イベント タイプ] メニューに、ブローカーで利用できるイベント タイプが表示されます。
- [イベント タイプ] で、送信するイベント タイプを選択します。
- [入力] タブをクリックします。
- 利用可能なコントロールを使って、送信する BrokerEvent オブジェクトを指定します。
- 利用可能なオプション (フォーム XML、リテラル XML、スクリプト、フォーム入力) と関連するコントロールは、SOAP Client ツールや他のメッセージング ツールと同じです。詳細については、「Input Modes」 を参照してください。
- フォーム XML、リテラル XML、フォーム入力を使用していて、デフォルトの入力テンプレートを生成したい場合、[リフレッシュ] をクリックします。
- スクリプト モードでは、オブジェクトを直接操作することができます (たとえば、GUI や XML 表現ではなく、webMethods API を使ってスクリプトでフィールド値を設定したい場合など)。詳細については 「スクリプト入力の指定」 および 「スクリプトを使用した拡張機能の基礎」 を参照してください。
BrokerEvent オブジェクトの詳細については、『webMethods Broker Client Java API Programmer’s Guide』の COM.activesw.api.client.BrokerEvent ドキュメントを参照してください。
テストの実行中 SOAtest は、ブローカー クライアントの Java API を呼び出してそれを BrokerEventobject に提供することでリクエストを送信し、リプライを待ちます。
リクエスト/リプライのイベントの XML 表現を参照するには、Traffic Viewer ツールを使用します。このツールは自動的に webMethods ツールに連結されます。なお、実際の BrokerEvent オブジェクトが送受信されても、Traffic Viewer ツールは XML 表現を使用します。XML 表現が読みやすくなると共に、ユーザーはコンテンツを検証したり処理したりするツール (たとえば Diff ツールや XML Assertor ツール) を連結することができます。
スクリプト入力の指定
ブローカーにパブリッシュするときに、またはスクリプト入力を使ってリクエスト/リプライを行うときに、2 つの引数がカスタム メソッドに渡されます。1 つ目の引数は、ツール設定で指定したタイプ名に対する BrokerEvent オブジェクトです。目的の入力値をこのオブジェクトに投入して返す必要があります (入力値の投入については『webMethods Broker Client Java API Programmer’s Guide』を参照してください)。2 つ目の引数は、テスト ツールの com.parasoft.api.Context オブジェクトです。
以下は Jython スクリプトの例です。
from com.parasoft.api import * from COM.activesw.api.client import * def configureBrokerEvent(event, context): event.setUCStringField("s", "something") event.setIntegerField("i", 1) event.setUCStringSeqField("sl", 0, BrokerEvent.ENTIRE_SEQUENCE, BrokerEvent.AUTO_SIZE, ["one", "two", "three"]) return event
Integration Server との連携
必要な JAR ファイルのクラスパスへの追加
以下の JAR ファイルを SOAtest のクラスパスに追加する必要があります。
- wm-isclient.jar
この JAR ファイルは [webmethods install dir]/common/lib/ にあります。SOAtest のクラスパスにこの JAR ファイルを追加するには、以下の操作を行います。
- [Parasoft] メニューの [設定] をクリックします。
- [Parasoft] > [システム プロパティ] ページを開きます。
- [Jar の追加] ボタンをクリックし、必要な Jar ファイルを選択して追加します。
SOAtest と Integration Server との使用
webMethods IS (Integration Server) サービスを呼び出してレスポンスを受け取るよう SOAtest を設定するには、以下の操作を行います。
- テスト ケース エクスプローラーで webMethods ノードをダブルクリックし、ツールの設定パネルを開きます。
- [ツール設定] タブを開きます。
- 以下のようにツール設定を指定します。
- [webMethods] から [Integration Server] を選択します。
- [ホスト]、[ユーザー]、[パスワード] フィールドで、Integration Server に接続するための設定を指定します。
- [リフレッシュ] をクリックします。[パッケージ] メニューに、Integration Server で利用できるパッケージが表示されます。
- [パッケージ] で、呼び出したいサービスを含むパッケージを選択します。
- [サービス] で、呼び出したいサービスを選択します。
- [入力] タブをクリックします。
- 利用可能なコントロールを使って、サービスを呼び出すために使用する iData オブジェクトを指定します。
- 利用可能なオプション (フォーム XML、リテラル XML、スクリプト、フォーム入力) と関連するコントロールは、SOAP Client ツールや他のメッセージング ツールと同じです。詳細については、「Input Modes」 を参照してください。
- フォーム XML、リテラル XML、フォーム入力を使用していて、デフォルトの入力テンプレートを生成したい場合、[リフレッシュ] をクリックします。
- スクリプト モードでは、オブジェクトを直接操作することができます (たとえば、GUI や XML 表現ではなく、webMethods API を使ってスクリプトでフィールド値を設定したい場合など)。詳細については 「スクリプト入力の指定」 および 「スクリプトを使用した拡張機能の基礎」 を参照してください。
- iData オブジェクトの詳細については、『webMethods Broker Client Java API Programmer’s Guide』の com.wm.data.iData のドキュメントを参照してください。
テストの実行中 SOAtest は、Integration Server のサービスを呼び出してレスポンスを受け取るために iData オブジェクトを送信します。
送受信するオブジェクトの XML 表現を参照するには、Traffic Viewer ツールを使用します。このツールは自動的に webMethods ツールに連結されます。この XML 表現は iData の XML コーダーの書式を使用します。なお、実際の iData オブジェクトが送受信されても、Traffic Viewer ツールは XML 表現を使用します。XML 表現が読みやすくなると共に、ユーザーはコンテンツを検証したり処理したりするツール (たとえば Diff ツールや XML Assertor ツール) を連結することができます。
スクリプト入力の指定
Integration Server サービスでスクリプト入力を使用する際、2 つの引数がカスタム メソッドに渡されます。1 つ目の引数は、目的のデータを投入して返す必要がある IData オブジェクトです。2 つ目の引数は com.parasoft.api.Context オブジェクトです。
以下は Jython スクリプトの例です。
from com.wm.app.b2b.client import * from com.wm.data import * def buildIData(idata, context): IDataUtil.put(idata.getCursor(), "in1", "12") IDataUtil.put(idata.getCursor(), "in2", "13") return idata
セッション ID へのアクセス
セッション ID は自動的に WebMethodsSessionId コンテキスト変数に保存されます。com.parasoft.api.Context.get(String key) を使って、Extension ツール、スクリプト、およびカスタム ツールからこの変数にアクセスできます。String key は "WebMethodsSessionId" です。
たとえば、(Groovy スクリプトを使用する) 以下の Extension ツールは、sessionId 変数に格納されたセッション ID にアクセスします。
import com.parasoft.api.* boolean useSessionId(input, context) { sessionId = context.get("WebMethodsSessionId") Application.showMessage("sessionId = " + sessionId) // Put code here to do something with the session id return true }