使用SoapUI测试Salesforce的Web Service


在这篇文章中,我将介绍如何利用SoapUI测试Salesforce的Web Service ,利用SoapUI,你不用编写任何代码,只需要简单的配置就可以完成你的工作。

 

测试环境

Mac OS

Salesforce Developer Edition

SoupUI 5.3

 

下载和安装SoupUI

下载

安装帮助文档

 

下载WSDL

  1. 用管理员账号登录,或拥有 “Modify All Data” 权限的用户登录.
  2. 点击 Setup, 在 Quick Find 输入 API, 然后选择 API.
  3. 点击 Generate Partner WSDL 然后 保存 XML WSDL 文件到本地.

设置SoapUI

在完成以上所有的工作后,现在,我们需要创建一个新的soapUI项目。如果您需要测试多个web服务,建议你创建一个soapUI的项目并导入额外的WebServices进去。这将使更新企业WSDL更容易,将让您的生活压力较小。

右键单击项目 ,并选择新的soapUI项目 并填写您的信息的形式,INTIAL WSDL应该选择刚刚保存的Partner WSDL。

 

 

创建新的项目Demo,您将在左边看到一个名为Demo树,下面有许多的方法,这些都是由Salesforce的Partner WSDL提供的标准Salesforce方法。

 

 

使用SoapUI

现在,让我们来测试Web服务。首先,我们需要登录到Salesforce并得到Session Id。点击左侧Demo列表,展开Login 。

打开请求编辑器后,我们需要删除不需要的额外头部,并在填写用户名和密码。

 

然后按“播放”按钮发送请求

这时候,你可能会碰到这个问题:

"Invalid username, password, security token; or user locked out. "

解决的方法就是到salesforce网站,点击Reset My Security Token按钮,系统会将Token发送到你注册的邮箱,只要将那个Token添加到你的密码后面,就可以了。

 

因为Salesforce近期关闭了对TLS 1.0的支持,你用SoapUI的时候也会碰到下面的问题

"UNSUPPORTED_CLIENT: TLS 1.0 has been disabled in this organization. Please use TLS 1.1 or higher when connecting to Salesforce using https."

解决办法就是到SoapUI的安装目录下,找到vmoptions.txt,然后在文件中添加这么一句:

-Dsoapui.https.protocols=TLSv1.2,SSLv3

如果是MAC系统的话,就到Applications中找到SOAPUI,右键 Show Package,然后打开 Contents文件夹,找到 vmoptions.txt。

 

如果你的SoapUI运行比较慢的话,可以在 vmoptions.txt中增加另外一句:

-Dsoapui.browser.disabled=true

 

解决上面碰到的所有问题后,现在,返回的XML中,我们就可以得到Session Id了

复制Session Id,我们将用它来对Web Service 发起请求。

在下面的例子中,我们利用自动生成的模板来请求Query接口,同样,我们可以删除几乎所有的头部字段,只需要留下唯一部分就是SessionHeader 和Session Id

 

 

接下来,你还会碰到下面的错误:

UNKNOWN_EXCEPTION: Destination URL not reset. The URL returned from login must be set in the SforceService

要解决这个问题,我们要添加一个新的End Point, 指向我们自己的开发平台,这个值可以从Login返回的ServerUrl找到

重新运行请求到新的终端

 

然后,像以前那样点击“播放”按钮,你会得到接口的返回信息。

结论

SoapUI是一个伟大的工具,可以方便的帮助我们测试Web Service,但对于一个初学者,也会碰到不少坑,这篇文章希望能让大家更快乐的使用它。