C# 我们能否在Selenium N单元中的[Test]方法执行之前控制[Setup]方法执行

C# 我们能否在Selenium N单元中的[Test]方法执行之前控制[Setup]方法执行,c#,selenium,frameworks,nunit,hybrid,C#,Selenium,Frameworks,Nunit,Hybrid,我只是想知道如何解决这个问题。我需要自动化我的公司网站。在那里,我需要为多个网页导航多个url。我设计了混合框架以及页面对象模型设计 我的要求是,, 假设我有3个url: www.google.com www.yahoo.com 脸谱网 以上所有url及其测试数据我将保存在Excel表格中。我创建了三个不同的页面和三个不同的测试类。 因此,我的问题清单如下: 如何将url逐个传递给[setup]方法 如何根据url类型调用测试方法 需要实现应用程序的执行流: 在excel中存储URL不是个好主意

我只是想知道如何解决这个问题。我需要自动化我的公司网站。在那里,我需要为多个网页导航多个url。我设计了混合框架以及页面对象模型设计

我的要求是,, 假设我有3个url:

www.google.com
www.yahoo.com
脸谱网

以上所有url及其测试数据我将保存在Excel表格中。我创建了三个不同的页面和三个不同的测试类。 因此,我的问题清单如下:

  • 如何将url逐个传递给[setup]方法
  • 如何根据url类型调用测试方法
  • 需要实现应用程序的执行流:


    在excel中存储URL不是个好主意

    • 您可以将URL存储在app.config文件中,通过使用ConfigManager实用程序,您可以从app.config文件中检索这些URL

    • 根据您的测试用例,您可以在需要的地方使用URL


    您需要使用TestCase属性参数化测试

    [TestCase("www.google.com")]
    [TestCase("www.yahoo.com")]
    [TestCase("www.facebook.com")]
    public void WebPageTest(string site)
    {
      driver.Url(site);
      //continue with the test.
    }
    

    请参阅本文了解更多信息:

    我建议您使用[category]属性对测试用例进行分类。比如说

    [Test]
    [Category("GoogleTest")]
    public void googletest1()
    {
    }
    
    [Test]
    [Category("FBTest")]
    public void fbtest1()
    {
    }
    
    现在在[SetUp]方法中,您可以根据类别加载url,如

    [SetUp]
    public void testsetup()
    {
       #initialise driver 
       var category = TestContext.CurrentContext.Test.Properties.Keys;
                if(category.Contains("GoogleTest"))
                {
                       //category1 setup
                }
                else if(category.Contains("FBTest"))
                {
                    //category2 setup
                }
    }
    

    因此,使用此方法,您可以解决查询#2,即与测试相关的url已为您加载,因此您可以在安装后继续进行测试

    您好,非常感谢您宝贵的输入,我仍然有一些想法。例如,如果我有超过1K个URL需要测试,我如何继续??就像我将所有1K url存储在app.config中一样,我如何在[Setup]中循环每个1K url?嗨,我的网站中有超过1K个url,可以自动提交不同的页面,如何继续?如何在确切的流中循环每个url,如下所示[SetUp]->[URL1测试]->[Dream Down]->[SetUp]->[URL2测试]->[Dream Down]…继续这样操作@pradeep.k.sdeepu 1k URL与您在问题中提出的3 URL非常不同。您应该编辑和更新问题中的信息,使其更清晰,更符合实际问题的规模。您可以使用和读取Excel、db或平面文件等中的1k URL。您好,我附上了我正在处理的测试数据示例。对于我的公司网站,URL的数量将超过200或300,因此根据测试数据,如何使用N单元和页面对象模型设计我的框架?