• Selenium+java


    前言

    早期我们使用TestNG 来做数据驱动进行测试,测试数据是写在测试用例脚本中。这会使得测试脚本的维护工作量很大。因此我们可以将测试的数据和脚本分开。
    而我们经常使用会使用csv文件来做为导出数据时的存储文件,因此,可以通过读取 CSV文件存储数据,然后将数据传递给测试脚本进行测试。那么接下来我们将进行讲解使用csv文件做数据驱动。

    使用csv做数据驱动测试

    使用csv做数据驱动

    创建csv数据文件

    具体代码示例如下:

    import org.testng.annotations.DataProvider;
    import org.testng.annotations.Test;
    
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class TestCSVData {
    
    
        /**
         * 读取csv中的文件
         * @param filePath
         * @return
         */
        public List<Map<String, String>>  getData(String filePath){
            List<Map<String, String>> list=new ArrayList<Map<String, String>>();;
            FileInputStream fileInputStream = null;
            try {
                fileInputStream = new FileInputStream(filePath);
                InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
                BufferedReader br = new BufferedReader(inputStreamReader);
                for (String line = br.readLine(); line != null; line = br.readLine()) {
                    Map<String, String> map = new HashMap<>();
                    String key=line.split(",")[0];
                    String value=line.split(",")[1];
                    map.put("userName",key);
                    map.put("passWord",value);
                    list.add(map);
                }
                br.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return list;
    
        }
    
        @DataProvider
        public Object[][] testCSVData() {
            List<Map<String, String>> result = getData("d:\data.csv");
            Object[][] files = new Object[result.size()][];
            for (int i = 0; i < result.size(); i++) {
                files[i] = new Object[]{result.get(i)};
            }
            return files;
        }
    
    
        @Test(dataProvider = "testCSVData")
        public void testCSVData(Map<String,String> param) {
            System.out.println(param.get("userName")+"	"+param.get("passWord"));
        }
    }
    测试执行时,testCSVData()方法会调用 getData()方法来获得测试的数据,通过逗号将字符串分割成数组再添加到集合中。 每一行的数据都会通过构造凼数来进行初始
    化赋值。
     

    运行效果

  • 相关阅读:
    前端好用js库
    springmvc 配置之 mvc:default-servlet-handler
    springmvc配置之mvc:annotation-driven
    spring mvc 配置之 context:annotation-config vs component-scan
    React 学习笔记
    数据结构乱写
    字符串乱写
    HEOI2020 游记
    奇怪的基础容斥数学课件
    省选模拟104 题解
  • 原文地址:https://www.cnblogs.com/longronglang/p/11363711.html
Copyright © 2020-2023  润新知