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的组測试和组中组測试



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

  • 相关阅读:
    《七哥说道》第五章:入职惨做苦力,画饼一望无际
    《七哥说道》第四章:理想在远方,现实在流浪
    《七哥说道》第三章:志远淋雨怒辞职,误入保险黄老萍
    《七哥说道》第二章:初出茅庐之拜师学艺
    (十)redis源码解读
    (三十二)线上调优
    (三)栈
    (一)设计模式之代理模式
    Linux whereis、find和locate命令区别以及应用场景
    使用自定义注解和AOP管理shiro权限
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/6700229.html
Copyright © 2011-2022 走看看