【问题标题】:Is there a testing tool to test a C# .net web service that contains complex types?是否有测试工具来测试包含复杂类型的 C# .net Web 服务?
【发布时间】:2011-05-01 03:53:27
【问题描述】:

我已经构建了一个将复杂类型作为参数的 C# .net Web 服务。是否有可以针对我的 Web 服务运行并将所有值传递给复杂参数类型的测试工具?

一些背景信息: 我针对我的 XSD 运行了 xsd.exe 工具并创建了一个 .cs 类。这个 .cs 类具有用作我的复杂参数的数据集。现在我需要测试我的 webmethod 并像客户端一样将值传递给它。我试过WebService StudioStorm,但似乎这两个产品都不能处理复杂类型。有没有其他产品可以做到这一点?还是我从头开始编写自己的测试应用程序?

【问题讨论】:

    标签: c# .net web-services testing


    【解决方案1】:

    对于经典的 ASMX 服务,我使用了 Web Service Studio 2.0,它可以处理我所使用的所有复杂类型。您可以从http://archive.msdn.microsoft.com/webservicestudio20/获取经典版本(2.0)。

    我知道您链接到的 codeplex 上有一个更新版本,它看起来已经更新为支持复杂类型。 (不久前在 codeplex 上有一个无用的工具,它不能处理复杂的类型。)

    只是好奇您在使用 Web Service Studio 时遇到了什么具体问题?

    更新:重新阅读您的问题后,听起来您在服务中使用了 DataSet。如果是这样,那么您将在使用大多数工具包中的该服务时遇到互操作性问题;他们无法处理 DataSet,因为它是“动态”类型。解决该问题的最简单方法是avoid DataSets

    如果是这种情况,那么我同意其他人的观点,即您需要创建自己的 .NET 应用程序来使用您的服务。

    【讨论】:

    • 每当我将复杂类型(即数据集)作为我的 webmethod 的参数值时,当 WebServiceStudio 编译代理时,它会抛出此错误,“错误 CS0260:在声明类型'ItemList'时缺少部分修饰符; 此类型的另一个部分声明存在”。如果我删除了 complex 参数,错误就会消失并且 webservicestudio 可以正常工作。
    【解决方案2】:

    soapUI 将帮助您做到这一点。

    但是,我通常这样做的方式是使用 NUNIT 或 MSTEST 编写自动化单元测试,添加一个服务引用,然后只编写测试。这具有额外的好处,即您正在创建用户需要执行的相同类型的客户端代码。如果您的服务难以使用,那么您很快就会发现。

    【讨论】:

      【解决方案3】:

      我将使用 Visual Studio 和一个引用您的 Web 服务的 Windows 窗体来测试它。在这个 Windows 窗体中,您可以使用 NUnit、Fit 或任何您通常用来测试应用程序的东西。如果您在调试中同时运行 Web 服务和 Windows 窗体,则可以通过代码查看结果。

      这是我使用的方法,我从未真正听说过在 .net Web 服务中使用自定义类型的另一种方法。

      【讨论】:

        【解决方案4】:

        获取一份 Visual Studio Express 的副本(如果您没有完整版)并创建一个 Windows 应用程序、添加一个 Web 引用并进行测试,这不是很容易吗?

        应该花你更少的时间,而不是我阅读这个问题;) (不,我不是一个缓慢的读者)

        【讨论】:

        • 我可以说,我经常需要在客户精心控制的服务器上测试这些东西,我通过不可靠的 VPN 连接登录到 Citrix 服务器。安装 Visual Studio 是不可行的。复制一个通用的小型便携式 .Net 应用程序是。这就是 Web Service Studio 派上用场的地方。
        【解决方案5】:

        对于简单的情况,您可以使用 Visual Studio 2008 中引入的 WCF 测试客户端 (WcfTestClient.exe)。更多信息请访问 http://msdn.microsoft.com/en-us/library/bb552364.aspx

        SoapUI 适用于更复杂的情况。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-22
          • 1970-01-01
          • 1970-01-01
          • 2010-12-18
          相关资源
          最近更新 更多