测试WCF服务的最佳方法是什么?

时间:2009-03-06 20:39:42

标签: c# .net wcf

我使用了微软随视觉工作室一起提供的这个工具,因为它很快而且很脏

http://msdn.microsoft.com/en-us/library/bb552364.aspx

但它有点笨拙而难以合作。您是否有任何其他有用的测试客户端,并且不需要创建新的Visual Studio项目和编译代码?

编辑:我正在寻找一种图形化测试工具,我可以用它来对不同环境中的系统进行快速临时测试,而无需编写一堆不同的测试。

10 个答案:

答案 0 :(得分:16)

SoapUI是另一种网络服务测试工具。我强烈推荐它。

答案 1 :(得分:8)

您不会找到任何更好的工具来创建WCF服务的自动测试,而不是使用您最喜欢的单元测试框架和编写测试。测试客户端,也不是soapUI将创建可以在持续集成方案中运行的测试。

答案 2 :(得分:5)

WCFStorm对于测试您描述的方式非常有用。

答案 3 :(得分:2)

答案 4 :(得分:1)

我最终在MS测试中编写了单元测试。在每次测试之前,服务由测试程序集托管,之后被删除。当然,这不是单元测试,所以纯粹主义者会不寒而栗,但这确实意味着我可以随心所欲地进行测试。

答案 5 :(得分:1)

我并不是说暗示soapUI不适用于使用basicHttpBinding公开的WCF服务。使用basicHttpBinding会起作用,因为该服务将作为legaxy ASMX Web服务运行。但是,如果要将绑定(或使用多个绑定)切换到netTcpBinding,我不认为仍然可以使用soapUI调用该服务的方法。我正在描述的场景非常普遍,其中您使用basicHttpBinding端点在Web上公开了WCF服务以实现最大的互操作性,而另一个端点仅作为内部使用的netTcpBinding(用于最大性能)。

答案 6 :(得分:1)

有一个名为SOA Cleaner的新测试客户端,我建议你试一试。它支持WCF。可以在http://xyrow.com找到。

答案 7 :(得分:1)

我跑了WcfStorm的15天eval,我对它印象深刻。连接到服务并公开所有方法。单击一个方法,您可以构建多个测试用例。完成后,您可以保存这些测试(将我的服务保存为解决方案文件),当您进行更改时,您可以运行所有满足连续测试的测试。它还有一个命令行,可以让你集成到你的构建机器中进行真正的连续测试。

它还支持IronPython,因此如果您熟悉该脚本语言,您可以编写删除测试添加的记录的脚本。

答案 8 :(得分:0)

如果您需要测试客户端逻辑: 您可以使用mocking / Isolation框架来存储对服务器的实际调用,并使用单元测试框架来编写适当的单元测试。

测试服务器逻辑可以更容易 - 您只需要测试对业务逻辑的调用和对外部组件(即数据库)的存根调用。

单元测试客户端与服务器之间的完全交互没有实际好处,因为您知道WCF可以在专用服务器/客户端上添加整个环境的集成测试。

答案 9 :(得分:0)

令人惊讶的WCFStorm,但我认为对于独立开发者而言太贵了。

正如达林所说,我也推荐使用soapUI。

但是有一个特殊情况,当您在WCF中使用REST并将请求作为POST消息发送时,soapUI不会提供JSON请求。

在这种情况下,您可以使用我在此处找到的工具:

WCF RESTful JSON automated testing