繁体   English   中英

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

[英]What's the best way to test WCF services?

我使用了微软随 Visual Studio 提供的这个工具,因为它又快又脏

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

但它有点笨重且难以使用。 是否还有其他有用的测试客户端可供您使用并且不需要创建新的 Visual Studio 项目和编译代码?

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

SoapUI是另一个 web 服务测试工具。 我强烈推荐它。

您找不到比使用您最喜欢的单元测试框架和编写测试更好的工具来创建 WCF 服务的自动化测试。 测试客户端和soapUI 都不会创建一个可以在持续集成场景中运行的测试。

WCFStorm可用于测试您描述的方式。

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

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

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

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

我并不是要暗示soapUI 不适用于使用basicHttpBinding 公开的WCF 服务。 使用 basicHttpBinding 会起作用,因为该服务将作为旧版 ASMX web 服务运行。 但是,例如,如果要将绑定(或使用多个绑定)切换到 netTcpBinding,我认为仍然无法使用soapUI 调用该服务的方法。 我描述的场景很常见,其中您有一个 WCF 服务暴露在 web 上,使用 basicHttpBinding 端点以获得最大互操作性,另一个端点作为 netTcpBinding(以获得最大性能)仅在内部使用。

令人惊叹的 WCFStorm,但我认为对于独立开发人员来说太贵了。

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

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

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

WCF RESTful JSON 自动化测试

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM