Selenium+java - 使用csv文件做数据驱动

前言

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

使用csv做数据驱动测试

使用csv做数据驱动

创建csv数据文件

具体代码示例如下:

import org.testng.annotations.DataProvider;
 org.testng.annotations.Test;

 java.io.BufferedReader;
 java.io.FileInputStream;
 java.io.InputStreamReader;
 java.util.ArrayList;
 java.util.HashMap;
 java.util.List;
 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,1)">();;
        FileInputStream fileInputStream = null;
        try {
            fileInputStream = new FileInputStream(filePath);
            InputStreamReader inputStreamReader =  InputStreamReader(fileInputStream);
            BufferedReader br =  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"catch (Exception e) {
            e.printStackTrace();
        }
        return list;

    }

    @DataProvider
    public Object[][] testCSVData() {
        List<Map<String,String>> result = getData("d:\\data.csv");
        Object[][] files =  Object[result.size()][];
        for (int i = 0; i < result.size(); i++) {
            files[i] =  Object[]{result.get(i)};
        }
         files;
    }


    @Test(dataProvider = "testCSVData")
    void testCSVData(Map<String,String> param) {
        System.out.println(param.get("userName")+"\t"+param.get("passWord"));
    }
}
测试执行时,testCSVData()方法会调用 getData()方法来获得测试的数据,通过逗号将字符串分割成数组再添加到集合中。 每一行的数据都会通过构造凼数来进行初始
化赋值。
 

运行效果

 

相关文章

转载地址:https://www.cnblogs.com/mini-monkey/p/12104821...
web自动化测试过程中页面截图相对比较简单,可以直接使用sel...
目录前言一、Selenium简介二、浏览器驱动1.浏览器驱动参考2....
一、iframe的含义:iframe是HTML中框架的一种形式,在对界面...
转载请注明出处❤️作者:测试蔡坨坨原文链接:caituotuo.to...
'''##**认识selenium**​**下载:pipinstall...