java - 我可以使用 TestNG 中的 @Parameters 从用户定义的 xml 中读取而不是从 testng.xml 中读取吗

标签 java selenium selenium-webdriver testng

我有很多测试数据将用于各种@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/

相关文章:

java - 如何为不同行具有不同列号的 Excel 工作表编写 TestNG DataProvider 注释

Selenium 错误: This version of ChromeDriver only supports Chrome version 81 | My driver version is 81. 0.4044.69

java - 创建一个类变量只是为了在Optional.ifPresentOrElse中使用是应该避免的做法吗?

java - 为什么 Java 不允许在构造函数中初始化 static final 变量(例如 static final int d)?

c# - 使用 selenium webdriver 和 C# 在 HTML 表格单元格中进行下拉选择

python - 如何使用selenium python注销linkedin

java - 如何重启 kubernetes 服务的多个 spring boot 应用程序实例

java - 哪种数据结构用于存储矩阵对?

python - 为什么我在 selenium 中找不到带有占位符的输入元素?

javascript - 如何启用 chromedriver 从 selenium webdriver 登录