zoukankan      html  css  js  c++  java
  • 自动化测试框架selenium+java+TestNG——读取csv文件

          读取csv文件可以直接读取,也可以使用javacsv.jar,后者比较简单,这个也可以变相认为是对表格的处理,我们可以在表格中做好数据,存储成csv格式的文件,后续对xlsx表格的操作抽个时间再记录下。

    package com.testngDemo;
    
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.nio.charset.Charset;
    import java.util.ArrayList;
    
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.testng.annotations.AfterClass;
    import org.testng.annotations.BeforeClass;
    import org.testng.annotations.DataProvider;
    import org.testng.annotations.Test;
    
    import com.csvreader.CsvReader;
    
    public class Demo_testngCsv {
        
        public static void main(String args[])
        {
            ArrayList<String []> list = readCsv("E:/csv测试表.csv");
            
            for(int i=0;i<list.size();i++)
            {
                System.out.println(list.get(i)[0]);//name
                System.out.println(list.get(i)[1]);//age
                System.out.println(list.get(i)[2]);//sex
                System.out.println("-------------------");
            }
        }
        public static ArrayList<String []> readCsv(String filePath)
        {
            ArrayList<String[]> list = new ArrayList<String []>();//创建保存数据集合
            //创建csvreader读取
            CsvReader cReader = null;
            try {
                cReader = new CsvReader(filePath,',',Charset.forName("GBK"));
                //是否跳过表头
                cReader.readHeaders();
                //录入数据
                while(cReader.readRecord()){
                    list.add(cReader.getValues());
                }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                cReader.close();
            }
            //如果使用testng的DataProvider,可以返回一个二维数组
            Object data[][] = new Object[list.size()][];
            for(int i=0;i<list.size();i++)
            {
                data[i]=list.get(i);
            }
            
            
            return list;
        }
    }

    在E盘下有个csv文件表:

    运行可以看见:

    ————————————————————————————————————————————————————————————————

    总结下,这也可以作为一种数据驱动的方式,用表格存储测试数据,甚至是元素属性,实现数据和代码的分离。这样更能降低代码的耦合度,脚本也更容易维护。

  • 相关阅读:
    图论一角
    入门-k8s部署应用 (三)
    入门-k8s集群环境搭建(二)
    入门-Kubernetes概述 (一)
    shell中获取时间
    Linux shell脚本之 if条件判断 (转)
    linux中shell变量$#等的释义
    shell 的here document 用法 (cat << EOF) (转)
    Homebrew的安装与使用
    docker容器编排 (4)
  • 原文地址:https://www.cnblogs.com/dreamyu/p/6440613.html
Copyright © 2011-2022 走看看