我可以在网上找到我的问题的答案,所以我会问你们。
我使用此WSDL定义的副本(http://www.webservicex.com/globalweather.asmx?WSDL)为SoapUI 5.0配置了一个MockService。
我不能用PHP SoapClient测试MockService就好了:
ini_set("soap.wsdl_cache_enabled", 0);
$client = new \SoapClient("http://172.20.1.52:8088/mockGlobalWeatherSoap?WSDL", array('trace' => 1));
$response = $client->__soapCall('GetCitiesByCountry', array());
但是,我开始使用定义来确保某些方法的强制参数。
例如,我想确保CountryName是GetCitiesByCountry()方法的必需参数:
<s:element name="GetCitiesByCountry">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="CountryName" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
但是,无论我在SoapUI上投掷什么,我的MockService总会向我发送正确的回复,指示是否已提供参数。
有人可以解释一下,如何确保SoapUi中WSDL文件中描述的基本验证?
我已经花了几个小时在互联网上找不到任何相关的答案。
非常感谢,亲切的问候,
R上。
PS:我在SoapUI中尝试了同样的事情,发送了一个缺少参数的虚拟肥皂请求,但SoapUI并不关心并向我发回回复。
答案 0 :(得分:0)
SoapUI模拟不模拟WSDL中的内容。它只会模拟一个响应。您必须配置SoapUI以模拟所需的特定响应。
您是否尝试过SoapUI文档? http://www.soapui.org/Service-Mocking/simulating-complex-behaviour.html