C# 如何通过编程/编码实现Web服务测试自动化

C# 如何通过编程/编码实现Web服务测试自动化,c#,web-services,testing,asp.net-web-api,C#,Web Services,Testing,Asp.net Web Api,我知道这些问题已经被问过很多次了,我仍然在寻找一个能满足我问题的答案。请看下面几点我想要的: 首先,如何通过编程实现这一点。对于web自动化,我使用的是specflow C。我是否需要为web服务测试创建单元测试?通过编程可以做什么?soapUI被排除在外,因为它已经被手动测试人员使用了 是否有任何可用的框架 请给我支持他们的链接和例子 我知道这是一个广泛的问题。但是我确实需要大家的帮助,这样我就可以在API测试的正确方向上开始了。您的首要任务是了解您正在测试的web服务。您是否有可以提交到we

我知道这些问题已经被问过很多次了,我仍然在寻找一个能满足我问题的答案。请看下面几点我想要的:

  • 首先,如何通过编程实现这一点。对于web自动化,我使用的是specflow C。我是否需要为web服务测试创建单元测试?通过编程可以做什么?soapUI被排除在外,因为它已经被手动测试人员使用了

  • 是否有任何可用的框架

  • 请给我支持他们的链接和例子


  • 我知道这是一个广泛的问题。但是我确实需要大家的帮助,这样我就可以在API测试的正确方向上开始了。

    您的首要任务是了解您正在测试的web服务。您是否有可以提交到web服务的有效XML?如果是这样,请将其存储在某个位置,并创建一个从文件夹中获取的步骤。使用该XML作为测试用例,并遍历文件夹中的每个文件。根据您希望测试涵盖的内容,每个XML文件应该有所不同

    通常,web服务测试将包括记录响应时间、发送不同风格的XML作为测试用例(改变节点的内容以覆盖不同的触发器),以及检查响应中的特定值

    一个非常高层次的隐式场景可能是这样的(基于我曾经做过的事情):

    该代码中使用的
    CreateXMLInstance
    方法将从文件路径加载XML,如下所示:

     public XmlDocument CreateXmlInstance(string xmlPath)
        {
            //Loads XML from file path
            XmlDocument request = new XmlDocument();
            request.Load(xmlPath);
            return request;
        }
    
    实际上,您已经创建了最初的几个步骤,并且可以将
    requestXml
    变量存储为字段或存储在Specflow的
    ScenarioContext
    中,以便稍后在执行web服务调用时使用


    显然还有很多事情要考虑,但这可能会给你带来正确的方向。 我担心你的问题会因为太宽泛而结束。另外,不要使用
    api
    标签;您可能需要使用
    WebAPI
    或更好的
    asp.NETWebAPI
    。在使用之前,我需要一些答案!!请用你一直在做的一些研究更新你的问题。你熟悉单元测试吗?您是否已经知道可以使用哪些框架?你已经查过一些例子了吗?没有“正确的方向”这样的东西,这完全取决于你的具体需要,只要这些不完全清楚,这个问题就无法得到恰当的回答。很抱歉
    [Given(@"I have XML file '(.*)'")]
     public void GivenIHaveXMLFile(string fileName)
        {
            //Checks if file exists 
            if (System.IO.File.Exists(fileName))
            {
                var requestXml = CreateXMLInstance(fileName);
            }
            else
            {
                throw new Exception("No XML file found in specified location");
            }                    
        }
    
     public XmlDocument CreateXmlInstance(string xmlPath)
        {
            //Loads XML from file path
            XmlDocument request = new XmlDocument();
            request.Load(xmlPath);
            return request;
        }