【问题标题】:Can we control the [Setup] method execution before [Test] Method Execution in Selenium N unit [closed]我们可以在 Selenium N 单元中的 [Test] 方法执行之前控制 [Setup] 方法执行吗?
【发布时间】:2019-02-05 09:15:46
【问题描述】:

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

我的要求是, 说我有 3 个网址:

www.google.com
www.yahoo.com
脸书

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

  1. 如何将url的一一传递给[setup]方法
  2. 如何根据url类型调用深化测试方法

Application的Execution Flow需要实现:

【问题讨论】:

    标签: c# selenium frameworks nunit hybrid


    【解决方案1】:

    您需要使用 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.
    }
    

    查看这篇文章了解更多:https://github.com/nunit/docs/wiki/TestCase-Attribute

    【讨论】:

    • 您好,非常感谢您的宝贵意见,我仍然有一些想法。例如,如果我有超过 1K 的 URL 需要测试,我该如何进行?就像我将所有 1K url 存储在 app.config 中一样,我如何在 [Setup] 中循环遍历每个
    • 您好,我的网站中有超过 1k 个 url 可以自动提交不同的页面,如何处理它们?如何像这样 [SetUp]->[URL1 Test]->[Tear Down]->[Setup]->[URL2 Test]->[Tear Down]... 像这样继续循环每个 url。 ??
    • @pradeep.k.sdeepu 1k URLs 与您提出的问题中的 3 非常不同。您应该编辑和更新问题中的信息,使其更清晰,更符合实际问题的规模。
    • 您可以使用TestCaseData 并从 Excel 或数据库或平面文件等中读取您的 1k URL。
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      我建议您使用 [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已经为你加载了,所以你可以在设置后继续你的测试

      【讨论】:

      • 嗨,我附上了正在处理的测试数据样本。我公司网站的 url 数量将超过 200 或 300 个,因此根据测试数据,我如何使用 N 单元和页面对象模型设计我的框架?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-02
      • 1970-01-01
      • 1970-01-01
      • 2019-06-19
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多