[英]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.