我可以使用哪些程序来测试需要一些SOAP HEADER的ASP.NET Web服务?

时间:2009-06-23 10:19:23

标签: web-services soap wsdl soapheader

我已经获得了这个遗留应用程序来进行一些bug测试。 Joy :(这是一个用C#编写的简单的Web服务 - > api.asmx。

现在,测试它的技巧是它需要一些SOAP HEADER进行身份验证。我知道我可以去asmx页面,它给了我所有暴露的api方法。点击这些方法给我一个页面,我可以看到所有GET / POST / SOAP的东西。如果我编辑我的web.config,我可以激活POST测试。 KEWL。一切正常。当然,我无法添加SOAP HEADER,因此它失败了。

这是SOAP xml定义的东西: -

POST /services/api.asmx HTTP/1.1
Host: www.<snip>.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://webservice.<snip>.com/GetStuff"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <ApiAuthentication xmlns="http://webservice.<snip>.com/">
      <DeveloperKey>string</DeveloperKey>
    </ApiAuthentication>
  </soap:Header>
  <soap:Body>
    <GetStuff xmlns="http://webservice.<snip>.com/">
      <StuffId>int</StuffId>
    </GetStuff >
  </soap:Body>
</soap:Envelope>

那么,我可以下载哪些程序来测试这些东西?我试过FIDDLER,但没有运气:(除非我用错了。

干杯!

编辑1&amp; 2(添加删除线):

previous SO question建议SoapUI但这是java,我拒绝在我的盒子上安装java ....我宁愿不必拔出VirtualPC并抛出,那里......拜托?

解决方案:

使用SoapUI安装在虚拟PC上的

newbie instructions to follow(免费应用):)

2 个答案:

答案 0 :(得分:3)

尽管可能很明显,但您需要提供 DeveloperKey 值,以便通过应用程序级安全机制授权您的请求。

这里有几点需要注意:

  • 在许多其他方面,soapUI具有轻松定义Web服务参数的功能。这可能有助于测试这些遗留Web服务。此外,您可以使用Property Expansion,它允许您表示(可能)在不同(测试)Web服务请求之间更改的值,或者您想要在soapUI测试中以编程方式控制的值(即使用Groovy脚本)。 / LI>
  • 目前,soapUI是用于测试Web服务的最强大的开源工具。您可以下载捆绑JRE的独立版soapUI ,以便已安装的Java不会干扰与计算机上安装的其他软件(例如, Java大脑的排外部分; - ))。
  • 无论上述两点如何,您确实不需要虚拟机来在沙箱中运行 。您只需安装JRE或Java SDK即可运行Java应用程序。完成测试后,您可以随时卸载Java(JRE / SDK)和/或soapUI。

一旦你开始使用soapUI,你很快就会意识到它是一个非常强大的工具,而且用Java实现它将变得无关紧要。

干杯!
Shonzilla

P.S。 JRE是Java运行时环境,需要运行Java应用程序。它类似于运行.NET应用程序所需的.NET Framework可再发行组件包。

答案 1 :(得分:0)

如果你真的不能使用SoapUI,那么有一个名为SOAP Sonar的“企业”工具。我不知道它是什么样的,但它可能会起作用。