Java TestNG跨多个测试进行数据驱动测试

时间:2015-10-12 23:21:02

标签: java testng data-driven-tests

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

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

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

  1. @Test使用当前数据集行中的用户名和密码登录。
  2. @Test验证StoreName和items-store
  3. @Test导航到管理,并根据项目存储值验证商店的信用启用设置和商店的送货地点是否正确。
  4. 但是这里的每一步都必须是它的独立测试。

1 个答案:

答案 0 :(得分:1)

您可以将dataprovider保存在单独的类中,然后使用dataprovider注释您的测试。您可以使用 dataProviderClass

指定它

引自testng doc here

  

默认情况下,将在当前测试中查找数据提供者   类或其基类之一。如果你想放置你的数据   在不同的类中提供者,它需要是一个静态的方法和你   指定可在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) {
    // ...
  }
}