Selenium 定义将在各种浏览器上运行单个浏览器测试的测试工厂

Selenium 定义将在各种浏览器上运行单个浏览器测试的测试工厂,selenium,selenium-webdriver,testng,saucelabs,Selenium,Selenium Webdriver,Testng,Saucelabs,我正在尝试构思如何实现一个工厂,以便在我定义的所有浏览器上测试测试类。有没有更好的办法。有人能提出一个基本的改进吗 public class FactoryDataProviderTestBase extends MyTestBase { @Factory(dataProvider = "dp") public FactoryDataProviderTestBase( SauceTestHelper helper, Map<String,String> cs

我正在尝试构思如何实现一个工厂,以便在我定义的所有浏览器上测试测试类。有没有更好的办法。有人能提出一个基本的改进吗

public class FactoryDataProviderTestBase extends MyTestBase 
{
  @Factory(dataProvider = "dp")
  public FactoryDataProviderTestBase( SauceTestHelper helper, 
       Map<String,String> csvArgMap ) {
    super( helper,  csvArgMap );
  }

  @DataProvider( name = "factory" )
  static public Object[][] factoryDataProvider() {

    // do stuff here to initialize csvArgMap from csv file

    return new Object[][] {
      new Object[] { new SauceTestHelper(browser.FirefoxLatest), argMap },
      new Object[] { new SauceTestHelper(browser.IE8), argMap },
      new Object[] { new SauceTestHelper(browser.IE9), argMap },
      new Object[] { new SauceTestHelper(browser.IE10), argMap },
      new Object[] { new SauceTestHelper(browser.IE11), argMap },
      new Object[] { new SauceTestHelper(browser.Safari7), argMap },
      new Object[] { new SauceTestHelper(browser.Chrome), argMap }
    };

  }
}

在上面的代码中,TestNG应该创建FactoryDataProviderTestBase类的多个实例,每个定义的浏览器对应一个实例。可以找到设置和配置信息

我确实使用Selenium网格,以Sauce Labs网格的形式。另外,我的问题不是关于Selenium网格配置。我不熟悉TestNG,但JUnit有一个参数化的运行程序选项,允许您在运行测试之前设置参数。TestNG可能有类似的功能。看看这个答案是否有助于你的案例。