SalesforceのWeb Service(WebService)を用意し、他システムよりそのWeb Service(WebService)を呼び出し、Salesforceの情報を取得したり、更新したりする場合はあると思いますが、そのWeb Service(WebService)の結合テストを行う際に、他システムの開発は完了しないと行けません。今回は他システムを用意しなくても、SoapUIを使って、簡単にWeb Service(WebService)のテストを行えることを紹介したいと思います。
1.SoapUIのインストール
SoapUIは簡単でいうと、WEBサービスのテストツールです。使ったことがない方はぐぐってみてください。
①.SoapUIのオフィシャルサイトより、ご使用の環境に合わせて、インストール用インストーラーをダウンロードしてください。今回はMac用のをダウンロードします。
②.ダウンロードしたら、SoapUIをインストールします。インストール方法については、今回割愛させて頂きます。ご不明な方がいましたら、コメントでも頂ければ、個別説明致します。
③.インストール完了します。
①.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画面を開きます。
③.Partner WSDL画面を開いている状態で、マウスをPartner WSDL画面内の適当な所に移動し、右クリックして、「別名で保存...」を選択し、クリックします。
④.保存画面で、保存場所と保存名前をご使用の環境に合わせて、わかりやすいようにしてください。(例:保存ファイル名をPartnerWSDL.xml」にします)
①.設定 > 開発 > API を操作して、API WSDL画面を開きます。

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


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

4.SoapUIツールにWSDLファイルをインポート
①.SoapUIツールを起動します。初回目起動する場合は、以下のポップウィンドウが表示される場合がありますが、「Skip」を押します。
②.マウスをSoapUIのメイン画面左上の「Projects」に移動し、右クリックして、「New SOAP Project」を選択し、クリックします。
③.Project作成画面で、「Project Name」にわかりやすいような名前を入力してください。「Initial WSDL」入力欄の右にある「Browser」ボタンをクリックし、先ほど保存したWEBサービスAPIのWSDLファイルを指定してください。他の項目はそのままにして、「OK」ボタンをクリックしてください。
⑤.Add WSDL画面では、「WSDL Location」入力欄の右にある「Browser」ボタンをクリックし、先ほど保存したPartner WSDLファイルを指定します。他の項目はそのままにし、「OK」ボタンをクリックしてください。
⑥.作成したプロジェクトに2つのInterface Propertiesが入っていることを確認してください。
②.マウスをSoapUIのメイン画面左上の「Projects」に移動し、右クリックして、「New SOAP Project」を選択し、クリックします。

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

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



5.セッションIDの作成
WEBサービスAPIを呼び出す際に、ログインセッションIDが必要になりますので、先にPartner WSDLを使って、セッションIDの作成を行います。
①.SoapBinding > login > Request 1 を操作して、Request 1のxml編集画面を開きます。
②.xmlファイルの内容を以下のように編集します。
③.編集完了後、左上の「▶」の実行ボタンをクリックします。実行完了後、右ウィンドウに実行結果が表示されます。その結果ウィンドウ中の「sessionId」タグ内の値をコピーします。
③.編集完了後、左上の「▶」の実行ボタンをクリックします。実行完了後、右ウィンドウに実行結果が表示されます。その結果ウィンドウ中の「result」タグ内の値はWEBサービスAPIから返される値になります。
①.SoapBinding > login > Request 1 を操作して、Request 1のxml編集画面を開きます。

②.xmlファイルの内容を以下のように編集します。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<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> |

6.WEBサービスAPIの実行
上記生成したセッションIDを使って、WEBサービスAPIの検証を行います。
①.WEBサービスAPIのRequest 1編集画面を開きます。
②.対象のxmlファイルを以下のように編集します。①.WEBサービスAPIのRequest 1編集画面を開きます。

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<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> |

以上。
0 件のコメント:
コメントを投稿