我使用了微软随Visual Studio一同提供的这个工具,因为它很快且简单直接。
http://msdn.microsoft.com/en-us/library/bb552364.aspx
但它有点笨重,难以使用。你们是否知道其他有用的测试客户端,不需要创建新的Visual Studio项目和编译代码?
编辑:我更希望找到一个图形化测试工具,可以在我们不同的环境中进行快速的临时测试,而不必编写大量不同的测试。
我使用了微软随Visual Studio一同提供的这个工具,因为它很快且简单直接。
http://msdn.microsoft.com/en-us/library/bb552364.aspx
但它有点笨重,难以使用。你们是否知道其他有用的测试客户端,不需要创建新的Visual Studio项目和编译代码?
编辑:我更希望找到一个图形化测试工具,可以在我们不同的环境中进行快速的临时测试,而不必编写大量不同的测试。
SoapUI 是另一款Web服务测试工具。我强烈推荐它。
如果你想创建WCF服务自动化测试的最佳工具,那么使用你喜欢的单元测试框架编写测试是最好的选择。测试客户端和soapUI都不能创建在持续集成场景下运行的测试。
有一个叫做 SOA Cleaner 的新测试客户端,我建议你试一试。它支持 WCF,可以在http://xyrow.com找到。
我使用WcfStorm的15天试用版,对它印象深刻。连接到服务后,所有方法都会被公开。点击一个方法,您可以构建多个测试用例。完成后,您可以保存这些测试(将我的保存为带有服务的解决方案文件),并在进行更改时运行所有测试,以满足持续测试的要求。它还具有命令行,应该允许您将其集成到构建机器中,以进行真正的持续测试。
它还支持IronPython,因此如果您熟悉该脚本语言,您可以编写脚本来删除测试添加的记录。
我并不是想暗示soapUI不能用于使用basicHttpBinding公开的WCF服务。因为使用basicHttpBinding会起到一个传统的ASMX web服务的作用,所以它可以工作。但是,如果要切换绑定(或使用多个绑定),例如使用netTcpBinding,我认为仍然无法使用soapUI调用该服务的方法。 我描述的场景非常普遍,您可能在Web上使用basicHttpBinding端点将WCF服务公开以实现最大互操作性,并且只在内部使用另一个端点作为netTcpBinding(以实现最佳性能)。
最终我使用MS测试编写了单元测试。在每个测试之前,服务都由测试程序集托管,并在之后关闭。当然这不是真正的单元测试,所以纯粹主义者可能会感到不安,但这意味着我可以随时运行测试。
WCFStorm非常棒,但我认为对于独立开发者来说太贵了。
正如Darin所说,我也推荐使用soapUI。
但有一种特殊情况,当您在WCF中使用REST并将请求作为POST消息发送时,soapUI不支持JSON请求。
在这种情况下,您可以使用我在这里找到的工具:
如果您需要测试客户端逻辑: 您可以使用模拟/隔离框架来存根实际对服务器的调用,并使用单元测试框架编写适当的单元测试。
测试服务器逻辑甚至可以更容易 - 您所需的只是测试对业务逻辑的调用并存根对外部组件(即数据库)的调用。
在客户端到服务器之间进行完整交互的单元测试没有实际好处,因为您知道WCF有效,而应该在专用服务器/客户端上添加整个环境的集成测试。