このセクションでは、SOAtest で .NET WCF HTTP を使用する方法を説明します。
このセクションの内容:
.NET WCF HTTP を構成して SOAtest で使用
.NET WCF HTTP トランスポート オプションを使用すると、HTTP トランスポートを使用する Windows Communication Foundation (.NET 3.0、3.5 または 4.0) の Web サービスを呼び出すことができます。.NET 4.0 の場合、このサービスのために .NET 4 CLR/クライアント ランタイムがインストールされている必要があります。
SOAtest は WCF システム標準の BasicHttpBinding、WSHttpBinding および HttpTransportBindingElement を使用するカスタム バインディングを認識します。.NET WCF HTTP Transport を使用すると、Java ベースの HTTP Web サービスを呼び出して .Net WCF クライアントとの相互運用性をテストすることもできます。詳細については以下を参照してください。
- システム標準のバインディング
- カスタム バインディング
- BasicHttpBinding
- WSHttpBinding
- HttpTransportBindingElement
該当するツールの [トランスポート] タブで [トランスポート] ドロップダウン メニューから [.NET WCF HTTP] を選択すると、[トランスポート] タブの左側のパネルに以下のオプションが表示されます。
- エンドポイント
- 構成ファイル
- セキュリティ
エンドポイント オプション
エンドポイントは、Web サービス エンドポイントの URL です。デフォルトでは、WSDL に定義されたエンドポイントがツールのエンドポイントに設定されます。WSDL のほかに、以下の 3 つのエンドポイント オプションがあります。
- デフォルト: このオプションを選択した場合、ツールを含むテスト スイートで定義されたエンドポイントが使用されます。テスト スイートで定義されたエンドポイントを GUI で参照するには、テスト スイートのノードをダブルクリックし、ツールの [オプション] タブを開きます。
- カスタム: 任意のカスタム エンドポイントを設定できます。
- UDDI serviceKey: 設定パネルの [WSDL/UDDI] タブで指定された UDDI レジストリでこのサーバーのエンドポイントを参照する際に使用する UDDI serviceKey を指定します。
構成ファイル オプション
WCF 構成ファイルは、WCF のクライアントおよびサービスの設定を定義するために使用される XML ファイルです。ツールは WCF クライアントとして動作することができ、WCF 構成ファイルの設定を使用して構成できます。テスト対象の Web サービスに WSDL ドキュメントまたはメタデータ エンドポイントがある場合、Microsoft Service Model Metadata Tool を使用して自動的に WCF クライアント構成ファイルを生成できます。Microsoft Service Configuration Editor を使用すると、グラフィカルなユーザー インターフェイスから WCF 設定ファイルを作成し、編集することができます。これらのツールは、Microsoft Windows SDK の一部として容易に入手できます。
ツールは WSDL に定義されたポリシーまたは WCF クライアント構成ファイルに定義されたエンドポイント バインディング構成に基づいて自動的にバインディング情報を判断できます。ツールの [WSDL に従う] オプションがオンの場合、WSDL に定義されたポリシーに基づいて自動的にエンドポイントのバインディングが決定されます。[WSDL に従う] がオフの場合、SOAtest は指定された WCF クライアント構成ファイルからエンドポイントのバインディング設定を探します。
ツールは WCF クライアント構成ファイルに定義されたエンドポイントの動作情報を使用することもできます。サービスが証明書を使用してサービス認証をネゴシエートする場合、clientCredentials 要素を持つエンドポイントの動作セクションが必要です。
以下の構成ファイル オプションを使用できます。
- WCF Client Configuration File: [参照] をクリックして構成ファイルを選択します。
- 相対パスで保存: 現在の構成ファイルへの相対パスとしてファイル パスを保存する場合、このオプションをオンにします。このオプションを有効にすると、複数マシンでのテストの共有が簡単になります。このオプションが無効な場合、テストスイートでこのファイルへのパスは絶対パスとして保存されます。
- Open Service Configuration Editor: このオプションは、Microsoft の Service Configuration Editor がマシンにインストールされている場合にだけ表示されます。このオプションを使用すると、すばやくエディターを開いて新しいサービス構成ファイルを作成したり、現在選択されているサービス構成ファイルを参照または編集することができます。
セキュリティ オプション
セキュリティ オプション タブでは、さまざまなセキュリティ認証のためのユーザー名およびパスワード情報を入力できます。さらに、[Open Certificate Manager] オプションを利用できます。[Open Certificate Manager] をクリックすると、Windows Certificate Manager が開きます。Windows Certificate Manager を使用すると、Web サービスを呼び出す際に認証を行うために使用する任意の証明書を管理できます。WCF 構成ファイルには Windows Certificate Manager が表示する証明書への参照を含めることができます。
リクエストの構成
[リクエスト] タブでは、リクエスト メッセージの SOAP エンベロープを構成できます。SOAP エンベロープは、トランスポートおよび暗号化などのメッセージの変換より前に構成されます。.NET WCF は、テスト実行時に自動的にメッセージおよびトランスポートのセキュリティを適用します。XML Signer および XML Encryption ツールは不要であり、ツールに連結するべきではありません。また、SOAP リクエストにセキュリティ ヘッダーを追加する必要もありません。必要な唯一の SOAP ヘッダーは WS-Addressing ヘッダーであり、WSDL からテストを作成した場合は、SOAtest によってこのヘッダーが自動的に追加されます。
トランザクション サポートの構成
SOAtest は WCF Web サービス用の WS-Atomic Transactions プロトコルおよび MS OLE Transactions プロトコルを使用してフローされたトランザクションをサポートしています。詳細については「.NET WCF のフローされたトランザクション」を参照してください。
SOAtest でグローバル .NET システム プロパティを構成
.NET の System.Net.ServicePointManager クラスのグローバル プロパティは、SOAtest のコマンドラインで Java のシステム プロパティを指定することで設定できます。ServicePointManager.DefaultConnectionLimit プロパティは、SOAtest とリモート ホストの間の HTTP キープ アライブ接続数を制限します。
DefaultConnectionLimit プロパティのデフォルト値は 2 です。負荷テストを実行する予定であり、3 つ以上の HTTP キープアライブ接続が必要な場合、このプロパティの値を増やすことを推奨します。
たとえば、DefaultConnectionLimit プロパティに 50 を指定するには、SOAtest を開始する際にコマンドライン引数として "-J-DSystem.Net.ServicePointManager.DefaultConnectionLimit=50" を渡します。SOAtest のコマンドライン引数を使用して設定可能な、サポートされる ServicePointManager プロパティは以下の通りです。
- System.Net.ServicePointManager.CheckCertificateRevocationList
- System.Net.ServicePointManager.DefaultConnectionLimit
- System.Net.ServicePointManager.DnsRefreshTimeout
- System.Net.ServicePointManager.EnableDnsRoundRobin
- System.Net.ServicePointManager.Expect100Continue
- System.Net.ServicePointManager.MaxServicePointIdleTime
- System.Net.ServicePointManager.MaxServicePoints
- System.Net.ServicePointManager.SecurityProtocol
- System.Net.ServicePointManager.UseNagleAlgorithm
これらのプロパティの詳細については次を参照してください: http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager_properties.aspx