希望以@BeforeClass
方法逐个获取网址,并使用不同的@Test
方法执行操作。
但@dataProvider
只能与@Test
方法一起使用而不能与@BeforeClass
中的TestNG
一起使用
约束: -
实际上,所有@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" } };
}
答案 0 :(得分:2)
将Factory方法与dataProvider方法一起使用, 它创建了一个多实例。
@Factory(dataProvider = "getUrls")
public SEOErrorFactoryResetBeforeClass(String pagUrl) {
this.pagUrl = pagUrl;
}
答案 1 :(得分:0)
使用POI jar文件使用数据驱动框架可以克服这些限制。 您可以从excel文件中获取测试URL,数据提供者有一些限制。
答案 2 :(得分:0)
是的,@ Factory注释将解决您的问题
@Factory(dataProvider = "getUrls")
public SEOErrorFactoryResetBeforeClass(String pagUrl) {
this.pagUrl = pagUrl;
}
答案 3 :(得分:0)
只需使用
像这样:context.getCurrentXmlTest()getParameters();
URI(str).tap { |uri| uri.query = nil }.to_s
#=> "https://habrahabr.ru/post/340400/"