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”