我们可以在硒N单元中执行[测试]方法执行之前控制[设置]方法执行

时间:2019-02-05 09:15:47

标签: c# selenium frameworks nunit hybrid

我只是想知道如何解决这个问题。我需要使公司网站自动化。在这里,我需要浏览多个网页的多个URL。我已经设计了混合框架以及Page对象模型设计。

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

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

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

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

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:-1)

在Excel中存储URL不是一个好主意

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

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

答案 2 :(得分:-1)

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

[Test]
[Category("GoogleTest")]
public void googletest1()
{
}

[Test]
[Category("FBTest")]
public void fbtest1()
{
}

现在,在[SetUp]方法中,您可以根据类别加载网址,例如

[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,即已经为您加载了与测试相关的网址,因此您可以在设置后继续进行测试