SoapUI使用笔记

SoapUI使用笔记


添加wsdl

如何获得WSDL地址?

浏览器打开webservice地址,点击WSDL链接后新弹出页面的地址即WSDL,url末尾带?wsdl标识

通过webservice地址添加WSDL

File->Create Empty Project,新建空工程 在新建的工程上右键->Add WSDL->WSDL Location处填入webservice地址

通过xml文件添加WSDL

SoapUI5.2之后,有时候直接通过WSDL地址添加会报错,在浏览器打开WSDL,将网页Ctrl+S保存为xml文件,添加WSDL时WSDL Location处选择Browse,打开xml文件即可添加。


使用WS-Security(WSS)

添加WSS Outgoing拦截器配置

在工程名上双击,打开Project属性界面,在WS-Security Configurations标签中选择Outgoing WS-Security Configurations标签。 点加号,添加一个新的Outgoing WSS配置,给其命名为callService-Outgoing-WSS。 再点下面的加号,给callService-Outgoing-WSS添加一个新的WSS Entry,type选择Username,填入用户名,密码,Password Type选择PasswordText,不勾选Adds a nonce,不勾选Adds a created

应用WSS Outgoing拦截器

在Request文本上点右键,选择Outgoing WSS,应用刚配置的拦截器,会看到SoapUI自动在请求头部<soapenv:Header>增加了<wsse:Security>配置,里面有拦截器中配置的用户名和密码。

The message has expired

SoapUI中发送请求,返回结果:<faultstring>The message has expired</faultstring> 原因是WS-Security开启了时间戳验证,本地时间和服务器时间不能相差大于30秒,否则请求超时。 可相应修改本地或服务器时间来解决。

A replay attack has been detected

请求返回错误<faultstring>An error happened processing a Username Token: "A replay attack has been detected"</faultstring> ,解决方法是去掉<wsse:Security>中的wsse:Nonce字段。可以修改WSS Outgoing拦截器配置,不勾选Adds a nonce

Service Endpoints上添加用户名和密码

在新增的WS上双击,在弹出窗口的Service Endpoints标签下填入Username和Password,并把WSS-Type类型选择为PasswordText。