TA的每日心情 | 开心 2024-10-4 10:34 |
---|
签到天数: 1208 天 连续签到: 1 天 [LV.10]测试总司令
|
转自:http://www.51testing.com/html/87/300987-832117.html
三、使用excel表格读取测试数据
1. 首先我们要用到的readExcel()这个方法,由于此方法中涉及到一些操作Excel 表格的API方法引用自jxl.jar这个包,所以大家需要确保在项目的Java Build Path里边需要添加testng.jar这个包。
注:jxl.jar这个jar包可以在网上搜索到的,下载下来就可以用了,这次试验用到的是这个jar包。当然我们也可以通过java的poi技术读取和导入Excel,感觉poi技术比使用jxl.jar 包难一些,但是poi的功能很强大。
我把readExcel()这个方法放在一个单独的类里边,类名为ExcelReader,如下
package com.test.com.test.java;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
/**
* 读取excle公共方法
* @author Rob
*
*/
public class ExcelReader {
/**
*
* @param excelFile 读取文件对象
* @param rowNum 从第几行开始读,如果有一行标头则从第二行开始读
*
* @return
* @throws BiffException
* @throws IOException
*/
public static String[] readExcel(File excelFile, int rowNum) throws BiffException,IOException
{
// 创建一个list用来存储读取的内容
List<String[]> list = new ArrayList<String[]>();
Workbook rwb = null;
Cell cell = null;
// 创建输入流
InputStream stream = new FileInputStream(excelFile);
// 获取Excel文件对象
rwb = Workbook.getWorkbook(stream);
// 获取文件的指定工作表 默认的第一个
Sheet sheet = rwb.getSheet(0);
// 行数(标头的目录不需要,从1开始)
for (int i = rowNum-1; i < sheet.getRows(); i++)
{
// 创建一个数组 用来存储每一列的值
String[] str = new String[sheet.getColumns()];
// 列数
for (int j = 0; j < sheet.getColumns(); j++)
{
// 获取第i行,第j列的值
cell = sheet.getCell(j, i);
str[j] = cell.getContents();
}
// 把刚获取的列存入list
list.add(str);
}
return list.get(rowNum);
}
}
测试方法如下:
package com.test.com.test.java;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
/**
* 读取excle公共方法
* @author Rob
*
*/
public class ExcelReader {
/**
*
* @param excelFile 读取文件对象
* @param rowNum 从第几行开始读,如果有一行标头则从第二行开始读
*
* @return
* @throws BiffException
* @throws IOException
*/
public static String[] readExcel(File excelFile, int rowNum) throws BiffException,IOException
{
// 创建一个list用来存储读取的内容
List<String[]> list = new ArrayList<String[]>();
Workbook rwb = null;
Cell cell = null;
// 创建输入流
InputStream stream = new FileInputStream(excelFile);
// 获取Excel文件对象
rwb = Workbook.getWorkbook(stream);
// 获取文件的指定工作表 默认的第一个
Sheet sheet = rwb.getSheet(0);
// 行数(标头的目录不需要,从1开始)
for (int i = rowNum-1; i < sheet.getRows(); i++)
{
// 创建一个数组 用来存储每一列的值
String[] str = new String[sheet.getColumns()];
// 列数
for (int j = 0; j < sheet.getColumns(); j++)
{
// 获取第i行,第j列的值
cell = sheet.getCell(j, i);
str[j] = cell.getContents();
}
// 把刚获取的列存入list
list.add(str);
}
return list.get(rowNum);
}
}
abc.xls文件的内容为:
username password
justForYourTestingXLS 135135
|
|