使用SoapUI测试Salesforce的Web Service
在这篇文章中,我将介绍如何利用SoapUI测试Salesforce的Web Service ,利用SoapUI,你不用编写任何代码,只需要简单的配置就可以完成你的工作。
测试环境
Mac OS
Salesforce Developer Edition
SoupUI 5.3
下载和安装SoupUI
下载
https://www.soapui.org/downloads/latest-release.html
安装帮助文档
https://www.soapui.org/getting-started/installing-soapui/installing-on-mac.html
下载WSDL
- 用管理员账号登录,或拥有 “Modify All Data” 权限的用户登录.
- 点击 Setup, 在 Quick Find 输入 API, 然后选择 API.
- 点击 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,但对于一个初学者,也会碰到不少坑,这篇文章希望能让大家更快乐的使用它。