我们可以在 Selenium N 单元中控制 [Test] 方法执行之前的 [Setup] 方法执行吗

Can we control the [Setup] method execution before [Test] Method Execution in Selenium N unit

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

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

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

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

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

执行流程需要实现的应用程序:

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

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

  • 根据您的测试用例,您可以在需要和需要的地方使用 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.
}

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

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