• 数据驱动测试之——CSV+TestNG


    对于利用Webdriver做自动化的童鞋,对于如何将元素或者输入数据如何和编码分离都应该不会太陌生,本着一边学习一边分享的心态,大概总结了一下关于利用CSV、XML以及Excel来存放数据,然后在结合TestNG来执行数据驱动测试。

    下面是关于CSV+TestNG进行数据驱动的代码:

    package com.util.datadriver;
    
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.testng.annotations.DataProvider;
    import org.testng.annotations.Test;
    
    /**
     * 
     * @author LTao 使用TestNG和CSV文件进行数据驱动
     */
    public class DataProviderCSV {
    
        //TestNG定义一个DataProvider
        @DataProvider(name = "testData")
        public static Object[][] words() throws Exception {
    
            return getData("date\testDate.csv");
    
        }
    
        //利用TestNG的特性,可以直接在方法中传入参数,这些参数从DataProvider中数据化传进来
        @Test(dataProvider = "testData")
        public void testDtaa(String input1, String input2, String result1) {
    
            System.out.println(input1);
            System.out.println(input2);
            System.out.println(result1);
    
        }
    
        
        public static Object[][] getData(String filePath) throws Exception {
    
            String line;
            
            //定义list来存放CSV中的数据,数组存放的是每行的数据
            List<String[]> list = new ArrayList<String[]>();
            
            //定义一个BufferedReader方便一行一行来读取csv中的数据
            BufferedReader br = new BufferedReader(new InputStreamReader(
                    new FileInputStream(filePath)));
            
            //先读一行,第一行定义的是关键字对应的解释语言,不用存放到list中,
            br.readLine();
            while ((line = br.readLine()) != null) {
    
                String[] fileds = line.split(","); //获取每行的数据
                list.add(fileds);
            }
            br.close();
    
            //定义object[][]二维数组,用list.size()定义二维数组行的限度
            Object[][] result = new Object[list.size()][];
    
            for (int i = 0; i < list.size(); i++) {
    
                result[i] = list.get(i); //将CSV每行中的数据存放到二维数组中
    
            }
    
            return result;
        }
    
    }
  • 相关阅读:
    Java乔晓松oracle的多表查询
    定义一个地址固定的变量
    J2ME的表单元素及其事件
    J2me的异常处理和多线程
    [置顶] eclipse远程部署,静态文件实时同步插件
    newlisp debugger
    启用isqlplus
    ORA27101: shared memory realm does not exist
    windows下安装node.js及less
    em启动/关闭报错解决
  • 原文地址:https://www.cnblogs.com/taoSir/p/5106304.html
Copyright © 2020-2023  润新知