我有很多测试数据将用于各种@Test方法。我计划使用 @Parameters 传递每个 @Test 方法的测试数据(通常每个测试 1-2 个参数)。但各种引用文献表明 @Parameters 读取 testng.xml 中定义的属性。我不想在单个 testng XML 文件中定义所有属性名称,而是希望拥有单独的 XML,以便我也可以组织测试数据。 那么可以这样做吗?还有其他方法来管理测试数据吗? PS:Excel 不是一个选项
最佳答案
这可能对您有帮助:-您尝试过这种方法吗?
您还可以使用数据提供程序来获取测试数据,如下所示:-
public class DataProviderTest {
private static WebDriver driver;
@DataProvider(name = "Authentication")
public static Object[][] credentials() {
return new Object[][] { { "a", "a" }, { "b",
"b" }};
}
// Here we are calling the Data Provider object with its Name
@Test(dataProvider = "Authentication")
public void test(String sUsername, String sPassword) {
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://yoursite.com");
driver.findElement(By.xpath(".//*[@id='account']/a")).click();
driver.findElement(By.id("log")).sendKeys(sUsername);
driver.findElement(By.id("pwd")).sendKeys(sPassword);
driver.findElement(By.id("login")).click();
driver.findElement(By.xpath(".//*[@id='account_logout']/a")).click();
driver.quit();
}
}
[您可以编写读取 xml 文件的逻辑,并将该数据传递给 dataprovider,并在每个测试中使用相同的 dataprovider。]
请告诉我这是否对您有帮助。这样我就可以向您建议其他解决方案。
关于java - 我可以使用 TestNG 中的 @Parameters 从用户定义的 xml 中读取而不是从 testng.xml 中读取吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45342957/