Testng 的数据源 驱动测试 代码与配置

来源:互联网 发布:知乎专栏怎么写 编辑:程序博客网 时间:2024/05/19 18:38

JUnit中有讲述使用注解的方式进行数据源读取进行自动循环测试的方法,在TestNG中也提供了相应的方法

public class TestngDataProvider {/** * 数组内的每个元素都会作为一个用例数据被执行 On execution testEmployeeData() will be executed 4 * times, *  * 数据源可以是Java对象、配置文件、数据库 *  * @return */@DataProvider(name = "DP1")public Object[][] createData() {Object[][] retObjArr = { { "001", "Jack", "London" },{ "002", "John", "New York" }, { "003", "Mary", "Miami" },{ "004", "George", "california" } };return (retObjArr);}@Test(dataProvider = "DP1")public void testEmployeeData(String empid, String empName, String city) {System.err.println(empid);System.err.println(empName);System.err.println(city);}@DataProvider(name = "iterator")public Iterator<Object[]> getData() {Set<Object[]> set = new HashSet<Object[]>();set.add(new String[] { "hello" });Iterator<Object[]> iterator = set.iterator();return iterator;}@Test(dataProvider = "iterator")public void testIteraorData(String iterator) {System.err.println("iterator  .. " + iterator);}}


测试结果:

001JackLondon002JohnNew York003MaryMiami004Georgecaliforniaiterator  .. helloPASSED: testEmployeeData("001", "Jack", "London")PASSED: testEmployeeData("002", "John", "New York")PASSED: testEmployeeData("003", "Mary", "Miami")PASSED: testEmployeeData("004", "George", "california")PASSED: testIteraorData("hello")===============================================    Default test    Tests run: 5, Failures: 0, Skips: 0===============================================


注意要点:

1.我们的@DataProvider方法可以通过读取Excel、数据库、properties文件等方式进行获取,这个取决于实际测试用例的设计和项目的需要,

2.其返回值是返回一个二维数组,数组内的二维元素个数必须和调用方法的参数一致,

3.这个一致包括了个数和顺序以及类型,否则如果类型不匹配或无法自动转换时就会抛出类型转换异常,而参数个数不匹配也会抛出参数缺失异常。


TestNG的组测试和组中组测试



如果我善良,
别认为我软弱。因为我明白,善良是本性,做人不能恶。

0 0