Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在TestNG框架中使用@BeforeClass方法中的数据驱动测试_Java_Selenium Webdriver_Webdriver_Testng_Testng Dataprovider - Fatal编程技术网

Java 如何在TestNG框架中使用@BeforeClass方法中的数据驱动测试

Java 如何在TestNG框架中使用@BeforeClass方法中的数据驱动测试,java,selenium-webdriver,webdriver,testng,testng-dataprovider,Java,Selenium Webdriver,Webdriver,Testng,Testng Dataprovider,希望在@BeforeClass方法中逐个获取URL,并在不同的@Test方法中执行操作 但是@dataProvider只能与@Test方法一起使用,而不能与TestNG中的@BeforeClass一起使用 约束条件:- 实际上,所有的@Test方法都是相互独立的,因此不能使用单一的测试方法 @dataProvider中的URL总是在更改。我们在运行时获取URL 我们如何应对这种情况 简言之,框架架构:- @BeforeClass(dataProvider = "getTestUrl

希望在
@BeforeClass
方法中逐个获取URL,并在不同的
@Test
方法中执行操作

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

约束条件:-

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

  • @dataProvider
    中的URL总是在更改。我们在运行时获取URL

我们如何应对这种情况

简言之,框架架构:-

     @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" } };
    }

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

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

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

是的,@Factory annotation将解决您的问题

@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());    

  }

从excel或数组中提取数据是一回事。但这里我关心的是在“Beforeclass”或“BeforeTest”方法中使用“dataProvider”