selenium中获取文件中测试数据的封装方法

上一篇 / 下一篇  2016-09-11 16:37:43 / 个人分类:selenium

以下函数可以读取csv以及exce表格的测试数据,并以2维数组的形式返回。

package dhb.autotest;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Getfiledata {
 
 Object[][] getData(){
  return new Object[][]{{"蝙蝠侠","主演","迈克尔"},{"超人","导演","唐纳"},{"生化危机","编剧","安德森"}};
 }
 
 
 Object[][] getCsv(String filepath) throws Exception{
 
  FileInputStream in=new FileInputStream(filepath);
  InputStreamReader isr=new InputStreamReader(in);
  BufferedReader br=new BufferedReader(isr);
  br.readLine();
  String line;
  List<Object[]> list=new ArrayList<Object[]>();
 while((line=br.readLine())!=null){
   list.add(line.split(","));
 }
  br.close();
  isr.close();
  in.close();
  Object[][] ss=new Object[list.size()][];
  for(int i=0;i<list.size();i++){
   ss[i]=list.get(i);
  }
  
  return ss;
 }


 Object[][] getXls(String filepath,String filename,String sheetname) throws Exception{
  File file=new File(filepath+"//"+filename);
  FileInputStream in=new FileInputStream(file);
  
  Workbook workbook = null;
  String fileExtentionName=filename.substring(filename.indexOf(".")+1);
  
  if(fileExtentionName.equals("xls")){
   
   workbook=new HSSFWorkbook(in);
  }else if(fileExtentionName.equals("xlsx")){
   
   workbook=new XSSFWorkbook(in);
  }else{
   System.out.println("erro:文件扩展名不是xls或xlsx,无法读取数据!!!!");
   return null;
  }
 
 
  Sheet sheet=workbook.getSheet(sheetname);
  int rowcount=sheet.getLastRowNum()-sheet.getFirstRowNum();
   
  List<Object[]> list=new ArrayList<Object[]>();
  Object[] cells;
  for(int i=1;i<=rowcount;i++){
   Row row=sheet.getRow(i);
   int colcount=row.getLastCellNum()-row.getFirstCellNum();
   cells=new Object[colcount];
   for(int j=0;j<colcount;j++){
    cells[j]=row.getCell(j).getStringCellValue();
          }
   list.add(cells);
  }
  
  Object[][] datas=new Object[rowcount][];
 for(int i=0;i<list.size();i++){
  datas[i]=list.get(i);
 }
 in.close();
 return datas;
}

}

 

TAG:

 

评分:0

我来说两句

日历

« 2024-04-28  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 7962
  • 日志数: 7
  • 建立时间: 2016-09-11
  • 更新时间: 2017-06-18

RSS订阅

Open Toolbar