提问者:小点点

JavaTestNG与数据驱动测试跨多个测试


我在电子商务平台上测试了一系列商店,每个商店都有一系列属性,我正在考虑自动化测试。有没有可能有一个数据提供程序,在测试套件中提供数据,而不仅仅是在TestNG中进行测试?我尽量不使用testNG. xml文件作为机制,因为这些属性直接来自数据库调用。

["StoreName", "username", "password", "credit-enabled", "items-store", "shipping-location", ]

我需要自动化做的是以下事情:

  1. @使用当前数据集行中的用户名和密码进行测试登录。
  2. @测试验证StoreName和items-store
  3. @Test导航到管理系统并验证商店的信用启用设置和商店的发货位置是否正确,给定ites-store值。

但是这里的每一步都必须是单独的测试。


共1个答案

匿名用户

您可以将数据提供程序保存在单独的类中,然后使用数据提供程序注释您的测试。您可以使用dataProviderClass指定它

引用testng文档:

默认情况下,将在当前测试类或其基类中查找数据提供者。如果您想将数据提供者放在不同的类中,它需要是一个静态方法,并且您指定可以在dataProviderClass属性中找到它的类:

public class StaticProvider {
  @DataProvider(name = "create")
  public static Object[][] createData() {
    return new Object[][] {
      new Object[] { new Integer(42) }
    }
  }
}

public class MyTest {
  @Test(dataProvider = "create", dataProviderClass = StaticProvider.class)
  public void test(Integer n) {
    // ...
  }
}