在SOAP UI中可以很方便的mock soap service. 在每个soap service的右键菜单里都有"Generate MockService"选项, 可以根据wsdl定义自动生成mock service, 包括会为每个operation返回的response.
与soap service不同, soap ui没有为Restful service提供直接的mock方式, 而只是提供客户端的测试能力. 不过SOAP UI还是提供了一种基于docroot的mock方法, 实现很简单不过功能也有限. 具体步骤如下:
1, 创建 MockService
在创建的Project通过右键可以找到New MockService选项, 会弹出窗口让输入Mock Service的名字.
2. 配置选项
双击刚建好的MockService, 在弹出的窗口选择.
在Docroot里选择一个目录.
3. 创建文档.
在刚才Docroot指定的目录下就可以创建文件了. 在每次MockService收到请求时, URL中斜杠"/"分割的最后一个字段就是MockService返回给客户端的文件.
例如:
GET http://localhost/mockrestful/v0.1/MySearch
MockService就会在docroot下查找名字为"MySearch"的文件返回给client
这里的技巧:
当文件是以.json结尾(GET http://localhost/mockrestful/v0.1/MySearch.json),则返回的HTTP header中的Content-Type为text/javascript
如果是.xml,则Content-Type为text/xml
如果是.txt, 则Content-Type: text/plain
其它Content-Type为application/octet-stream
除了docroot的方法外,也可以通过onRequest Script实现Mock Restful service, 具体可以参考官网:http://www.soapui.org/Service-Mocking/mocking-rest-services.html
总的说来这种docroot方式还是比较简陋, 与SOAP UI提供的soap service mock功能相差还比较大,无法适应复杂些的测试场景,
以上步骤在SOAP UI3.5下测试通过.