我正在寻找从@DataProvider public static Object [] [] sauceBrowserDataProvider中删除(替换)硬编码浏览器/ OS / Version值的建议。代码示例:
@DataProvider(name = "hardCodedBrowsers", parallel = true)
public static Object[][] sauceBrowserDataProvider(Method testMethod) {
return new Object[][]{
**new Object[]{"firefox", "55.0", "Windows 10"},
new Object[]{"chrome", "65.0", "Windows 10"},**
};}
@Test( dataProvider = "hardCodedBrowsers")
public void createDriver(String browser, String version, String os)
throws Exception {
Class<? extends TestRemote> SLclass = this.getClass();
DesiredCapabilities capabilities = new DesiredCapabilities();
// set desired capabilities to launch appropriate browser on Sauce
capabilities.setCapability(CapabilityType.BROWSER_NAME, browser);
capabilities.setCapability(CapabilityType.VERSION, version);
capabilities.setCapability(CapabilityType.PLATFORM_NAME, os);
capabilities.setCapability("seleniumVersion", "3.8.1");
capabilities.setCapability("name", SLclass.getSimpleName());
capabilities.setCapability("screenResolution", "1920x1080");
driver = (new RemoteWebDriver(new URL("http://" + SAUCE_USERNAME + ":" + SAUCE_ACCESS_KEY + "@ondemand.saucelabs.com:80/wd/hub"), capabilities));
configRead = new ConfigFileReader();
propertyRead = new PropertyLoader();
baseUrl = propertyRead.getProperty("site.url");
app = new Application(driver);
getURL();
}
这是Java / TestNg / Jenkins / Saucelabs上的selenium项目
最简单的方法是将组合(浏览器/操作系统/版本)移动到数据源,如excel电子表格或csv或json / yaml / xml,并让@DataProvider
从那里读取它们。
更新
你可以使用QAF TestNG extension。它提供不同的inbuilt data-providers来加载来自不同数据源的测试数据,如xml,json,excel,properties,database。使用QAF,您可以设置不同的数据源,如下所示:
@QAFDataProvider (dataFile = "resources/data/logintestdata.csv")
@QAFDataProvider(dataFile = "resources/data/testdata.xls")
@QAFDataProvider(dataFile = "resources/data/testdata.xls", sheetName="login")
@QAFDataProvider(dataFile = "resources/data/testdata.xls", key="login") //excel with data table
@QAFDataProvider(dataFile = "resources/data/logintestdata.json")
@QAFDataProvider(key="login.data") //xml key
@QAFDataProvider(sqlQuery = "select col1, col2 from tbl") // database
@QAFDataProvider(dataFile = "resources/data/logintestdata.txt")
此外,你可以switch data-provider没有改变代码。除此之外,它还具有许多用于网络,移动(使用selenium,appium)和网络服务的黑盒测试功能。