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

前端之家收集整理的这篇文章主要介绍了Selenium+java - 使用csv文件做数据驱动前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

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

使用csv做数据驱动测试

使用csv做数据驱动

创建csv数据文件

具体代码示例如下:

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

@H_404_23@ java.io.BufferedReader;
@H_404_23@ java.io.FileInputStream;
@H_404_23@ java.io.InputStreamReader;
@H_404_23@ java.util.ArrayList;
@H_404_23@ java.util.HashMap;
@H_404_23@ java.util.List;
@H_404_23@ java.util.Map;

@H_404_23@public @H_404_23@class@H_404_23@ TestCSVData {


    /**@H_404_23@
     * 读取csv中的文件
     * @param@H_404_23@ filePath
     * @return
     @H_404_23@*/
    @H_404_23@public List<Map<String,String>>@H_404_23@  getData(String filePath){
        List<Map<String,String>> list=@H_404_23@new ArrayList<Map<String,1)">();;
        FileInputStream fileInputStream = @H_404_23@null@H_404_23@;
        @H_404_23@try@H_404_23@ {
            fileInputStream = @H_404_23@new@H_404_23@ FileInputStream(filePath);
            InputStreamReader inputStreamReader = @H_404_23@ InputStreamReader(fileInputStream);
            BufferedReader br = @H_404_23@ BufferedReader(inputStreamReader);
            @H_404_23@for (String line = br.readLine(); line != @H_404_23@null; line =@H_404_23@ br.readLine()) {
                Map<String,String> map = @H_404_23@new HashMap<>@H_404_23@();
                String key=line.split(",")[0@H_404_23@];
                String value=line.split(",")[1@H_404_23@];
                map.put("userName"@H_404_23@,key);
                map.put("passWord"404_23@catch@H_404_23@ (Exception e) {
            e.printStackTrace();
        }
        @H_404_23@return@H_404_23@ list;

    }

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


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

运行效果

 

猜你在找的Selenium相关文章