讀取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文件表:

運行可以看見:

————————————————————————————————————————————————————————————————
總結下,這也可以作為一種數據驅動的方式,用表格存儲測試數據,甚至是元素屬性,實現數據和代碼的分離。這樣更能降低代碼的耦合度,腳本也更容易維護。
