4

想在方法中一一获取网址@BeforeClass并以不同的方法执行操作@Test

@dataProvider只能用with@Test方法不能用@BeforeClass inTestNG

约束:-

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

  • 网址@dataProvider总是在变化。我们在运行时获取 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" } };
    }
4

4 回答 4

2

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

 @Factory(dataProvider = "getUrls")
        public SEOErrorFactoryResetBeforeClass(String pagUrl) {
            this.pagUrl = pagUrl;
        }
于 2015-08-23T07:15:51.527 回答
0

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

于 2015-08-10T07:53:17.743 回答
0

是的,@Factory 注解会解决你的顾虑

@Factory(dataProvider = "getUrls")
        public SEOErrorFactoryResetBeforeClass(String pagUrl) {
            this.pagUrl = pagUrl;
        }
于 2016-05-04T09:06:35.270 回答
0

只需使用

context.getCurrentXmlTest().getParameters();

像这样:

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

  }
于 2017-10-28T06:27:11.910 回答