编写测试
按包组织测试代码
编写测试业务逻辑
在testng.xml 配置 suite 和package
运行testng
组织测试数据
Testing传入
Parameters 可以在test和 suite中定义。
<suitename="My suite">
<parametername="first-name"value="Cedric"/>
<testname="Simple example">
使用
@Parameters("db")
@Test
publicvoid testNonExistentParameter(@Optional("mysql") final String db) {...
}
Dataproviders
提供数据
@DataProvider(name = "test1")
public Object[][] createData1() {
returnnew Object[][] { { "Cedric", new Integer(36) },
{ "Anne", new Integer(37) }, };
}
使用测试数据
@Test(dataProvider = "test1")
publicvoid verifyData1(final String n1, final Integer n2) {
System.out.println(n1 + " " + n2);
}
数据提供者在不同类中
缺少情况下,数据供应者将查找当前测试类或其基类。如果想要将数据供应者放在不同的类,则必须是一个静态方法,并在dataProviderClass 属性中指定该类:
publicclass StaticProvider { @DataProvider(name = "create") publicstatic Object[][] createData() { returnnew Object[][] { new Object[] { new Integer(42) } }; } } |
publicclass MyTest { @Test(dataProvider = "create", dataProviderClass = StaticProvider.class) publicvoid test(final Integer n) {} |
数据供应者方法可能返回下列两种类型之一:
· 二维数组对象(Object[][]),其第一维大小是测试方法将要调用的次数,二维大小包含一个与测试方法的参数类型一致的对象排列(如上例所示)。
· Iterator<Object[]>,与Object[][]的唯一不同是Iterator允许延迟创建测试数据。TestNG 将调用迭代器,然后带参数的测试方法靠迭代器一个接一个地返回参数值。如果你有大量的参数集传递到方法并且不想像前面那样创建它们,则使用Iterator<Object[]>就特别有用。