如何使用Watin测试Web服务

时间:2011-03-22 14:12:54

标签: .net nunit watin

我正在尝试编写一个调用Web服务的测试并测试它的结果。

[Test]
        public void should_display_correct_customer_when_DoCustomerSearch_is_invoked()
        {
            using (var browser = new IE("http://localhost:61245/WebServices/CustomerSearch.asmx?op=DoCustomerSearch"))
            {       
                browser.WaitForComplete();

                browser.TextField(Find.ByName("txtSearch")).TypeText("microsoft");
                browser.Button(Find.ByValue("Invoke")).Click();
                browser.Close();

                IE poppedUpBrowser = IE.AttachTo<IE>(Find.ByUrl("http://localhost:61245/WebServices/CustomerSearch.asmx/DoCustomerSearch"));

                poppedUpBrowser.WaitForComplete();
                Assert.IsTrue(poppedUpBrowser.ContainsText("Microsoft Corporation"));                
            } 
        }

当我通过浏览器调用服务时,会显示结果,但当watin运行相同的测试时,结果页面会出现500服务器错误。

任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

您是否尝试通过WatiN测试Web服务?

有更好的方法可以做到这一点:您应该在单元/集成测试中测试您的逻辑。这些测试的执行速度比WatiN快得多。

您的Web服务返回HTTP 500 - 可能会从您的代码中抛出异常 - 检查您的日志或附加调试器。

答案 1 :(得分:0)

我同意Jakub,使用WatiN测试Web服务似乎不是一个好主意。您应该使用Visual Studio使用Web服务,它将为您创建一个类。您可以通过生成的类调用Web服务并检查结果。