繁体   English   中英

如何在TestNG框架中的@BeforeClass方法中使用datadriven测试

[英]How to use datadriven test within @BeforeClass method in TestNG framework

想要在@BeforeClass方法中逐个获取URL并在不同的@Test方法中执行操作。

@dataProvider只能与@Test方法一起使用,而不能与TestNG @BeforeClass一起使用

约束:-

  • 实际上,所有@Test方法都是相互独立的,所以不能使用单一的测试方法。

  • @dataProvider网址总是在变化。 我们在运行时获取网址

我们怎么能管理这种情况?

在简短的框架架构中: -

     @BeforeClass(dataProvider = "getTestUrls") 
        public void testPage(){
            driver.get(testUrls);
       }

      @Test(priority=1)
      @Test(priority=2)

     @DataProvider
        public Object [][] getTestUrls(){
            return new Object[][]   { { 1,"http://www.yahoo.com" }, {2,"http://www.google.com" } };
    }

使用Factory方法和dataProvider方法,它创建一个多实例。

 @Factory(dataProvider = "getUrls")
        public SEOErrorFactoryResetBeforeClass(String pagUrl) {
            this.pagUrl = pagUrl;
        }

使用POI jar文件使用数据驱动框架可以克服这些约束。 您可以从excel文件中获取测试URL,数据提供程序有一些限制。

是的,@ Factory注释将解决您的问题

@Factory(dataProvider = "getUrls")
        public SEOErrorFactoryResetBeforeClass(String pagUrl) {
            this.pagUrl = pagUrl;
        }

只是用

context.getCurrentXmlTest()getParameters();

像这样:

  @SuppressWarnings("deprecation")
  @BeforeClass
  public void setUp(ITestContext context) {
  System.out.println(context.getCurrentXmlTest().getParameters());    

  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM