2016年3月27日日曜日

SoapUI + Partner WSDLでWEBサービス APIの検証を行う

 SalesforceのWeb Service(WebService)を用意し、他システムよりそのWeb Service(WebService)を呼び出し、Salesforceの情報を取得したり、更新したりする場合はあると思いますが、そのWeb Service(WebService)の結合テストを行う際に、他システムの開発は完了しないと行けません。今回は他システムを用意しなくても、SoapUIを使って、簡単にWeb Service(WebService)のテストを行えることを紹介したいと思います。



1.SoapUIのインストール

 SoapUIは簡単でいうと、WEBサービスのテストツールです。使ったことがない方はぐぐってみてください。

①.SoapUIのオフィシャルサイトより、ご使用の環境に合わせて、インストール用インストーラーをダウンロードしてください。今回はMac用のをダウンロードします。

②.ダウンロードしたら、SoapUIをインストールします。インストール方法については、今回割愛させて頂きます。ご不明な方がいましたら、コメントでも頂ければ、個別説明致します。

③.インストール完了します。

2.WEBサービスAPIのWSDLファイルのダウンロード

 WEBサービスやWSDLファイルとは何かについて、今回は説明しません。ご不明な方がいましたら、個別コメントください。

①.Salesforce環境にログインして、設定 > 開発 > Apex クラスを操作して、対象のWEBサービスAPIの横にある「WSDL」ボタンをクリックします。

②.WSDL画面が開いている状態で、マウスをWSDL画面内の適当な所に移動し、右クリックして、「別名で保存...」を選択し、クリックします。

③.保存画面で、保存場所と保存名前をご使用の環境に合わせて、わかりやすいようにしてください。(例:保存ファイル名をDemoWebService.xml」にします)

3.Partner WSDLファイルのダウンロード

 今回はpartner WSDLを使用して、ログインしますので、Partner WSDLファイルをダウンロードする必要があります。

①.設定 > 開発 > API を操作して、API WSDL画面を開きます。

②.API WSDL画面で、「パートナー WSDL の生成」リンクをクリックします。

③.Partner WSDL画面を開いている状態で、マウスをPartner WSDL画面内の適当な所に移動し、右クリックして、「別名で保存...」を選択し、クリックします。

④.保存画面で、保存場所と保存名前をご使用の環境に合わせて、わかりやすいようにしてください。(例:保存ファイル名をPartnerWSDL.xml」にします)

4.SoapUIツールにWSDLファイルをインポート

①.SoapUIツールを起動します。初回目起動する場合は、以下のポップウィンドウが表示される場合がありますが、「Skip」を押します。

②.マウスをSoapUIのメイン画面左上の「Projects」に移動し、右クリックして、「New SOAP Project」を選択し、クリックします。

③.Project作成画面で、「Project Name」にわかりやすいような名前を入力してください。「Initial WSDL」入力欄の右にある「Browser」ボタンをクリックし、先ほど保存したWEBサービスAPIのWSDLファイルを指定してください。他の項目はそのままにして、「OK」ボタンをクリックしてください。

④.マウスを上記作成したProjectに移動し、右クリックして、「Add WSDL」を選択し、クリックしてください。

⑤.Add WSDL画面では、「WSDL Location」入力欄の右にある「Browser」ボタンをクリックし、先ほど保存したPartner WSDLファイルを指定します。他の項目はそのままにし、「OK」ボタンをクリックしてください。

⑥.作成したプロジェクトに2つのInterface Propertiesが入っていることを確認してください。

5.セッションIDの作成

 WEBサービスAPIを呼び出す際に、ログインセッションIDが必要になりますので、先にPartner WSDLを使って、セッションIDの作成を行います。

①.SoapBinding > login > Request 1 を操作して、Request 1のxml編集画面を開きます。

②.xmlファイルの内容を以下のように編集します。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:partner.soap.sforce.com">
<soapenv:Header>
<urn:CallOptions>
<urn:client>?</urn:client>
<urn:defaultNamespace>?</urn:defaultNamespace>
</urn:CallOptions>
<!--
<urn:LoginScopeHeader>
<urn:organizationId>?</urn:organizationId>
-->
<!--Optional:-->
<!--
<urn:portalId>?</urn:portalId>
</urn:LoginScopeHeader>
-->
</soapenv:Header>
<soapenv:Body>
<urn:login>
<urn:username>★Salesforce環境のログインID★</urn:username>
<urn:password>★Salesforce環境のログインPW★</urn:password>
</urn:login>
</soapenv:Body>
</soapenv:Envelope>
view raw SoapUILogin hosted with ❤ by GitHub
③.編集完了後、左上の「」の実行ボタンをクリックします。実行完了後、右ウィンドウに実行結果が表示されます。その結果ウィンドウ中の「sessionId」タグ内の値をコピーします。

6.WEBサービスAPIの実行

 上記生成したセッションIDを使って、WEBサービスAPIの検証を行います。

①.WEBサービスAPIのRequest 1編集画面を開きます。

②.対象のxmlファイルを以下のように編集します。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:get="http://soap.sforce.com/schemas/class/GetSIMInfoWebService">
<soapenv:Header>
<!--
<get:AllowFieldTruncationHeader>
<get:allowFieldTruncation>?</get:allowFieldTruncation>
</get:AllowFieldTruncationHeader>
<get:DebuggingHeader>
-->
<!--Zero or more repetitions:-->
<!--
<get:categories>
<get:category>?</get:category>
<get:level>?</get:level>
</get:categories>
<get:debugLevel>?</get:debugLevel>
</get:DebuggingHeader>
<get:CallOptions>
<get:client>?</get:client>
</get:CallOptions>
-->
<get:SessionHeader>
<get:sessionId>★上記5で生成したセッションID★</get:sessionId>
</get:SessionHeader>
</soapenv:Header>
<soapenv:Body>
<get:getSimInfo>
<get:param>★WEBサービスを呼び出すパラメータ★</get:param>
</get:getSimInfo>
</soapenv:Body>
</soapenv:Envelope>
view raw SoapUIMethod hosted with ❤ by GitHub
③.編集完了後、左上の「」の実行ボタンをクリックします。実行完了後、右ウィンドウに実行結果が表示されます。その結果ウィンドウ中の「result」タグ内の値はWEBサービスAPIから返される値になります。


以上。

0 件のコメント:

コメントを投稿