zoukankan      html  css  js  c++  java
  • Testng 的数据源 驱动測试 代码与配置

    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);
    
    	}
    }


    測试结果:

    001
    Jack
    London
    002
    John
    New York
    003
    Mary
    Miami
    004
    George
    california
    iterator  .. hello
    PASSED: 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的组測试和组中组測试



    假设我善良。
    别觉得我软弱。由于我明确,善良是本性,做人不能恶。

  • 相关阅读:
    聊聊赚钱
    Java面试官最爱问的volatile关键字
    你适合副业挣钱吗?
    SpringBoot自定义starter及自动配置
    mybatis进阶--输入映射和输出映射
    mybatis入门--初识mybatis
    mybatis入门--#{}和${}的区别
    mybatis入门--mybatis和hibernate比较
    mybatis入门--单表的增删改操作
    mybatis进阶--mapper输入映射和输出映射
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/6700229.html
Copyright © 2011-2022 走看看