一,首先要配置好环境selenium+testng和poi包,selenium+testng的环境搭建就不细说了,这里有poi的包的分享https://pan.baidu.com/s/1BJEIWR57_4vwrCDy6WuBWA
下载后在项目里面添加lib文件再把所需要的poi包放入其中,并在项目里面导入其java build path中。
二,新建立一个Excel数据表。
三,代码如下:
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterClass;
public class ExcelParameter {
// 利用dataprovider关键字驱动参数化
@DataProvider(name = "loginData")
public Object[][] LoginData() throws IOException {
return GetData("F:\\hell.xls");
}
@Test(dataProvider = "loginData")
public void f(String uername, String passwd) {
//在输入框中输出信息
System.out.println(username+passwd);
}
// 从Excel中获取数据
@SuppressWarnings("deprecation")
public Object[][] GetData(String path) throws IOException {
int i;
int j;
// 定义行和列
int rownum;
int cellnum;
//String path = "F:\\hell.xls";
// 定义要读取的文件
FileInputStream readFile = new FileInputStream(path);
// 先创建一个空的workBook,从指定文件中读取
@SuppressWarnings("resource")
HSSFWorkbook wb = new HSSFWorkbook(readFile);
// 再选择读取的Sheet
HSSFSheet st = wb.getSheet("测试页");
//获取总的行数(或者st.getPhysicalNumberOfRows())
rownum = st.getLastRowNum()+1;
//获取总的列数
cellnum = st.getRow(0).getPhysicalNumberOfCells();
// 创建一个存储Excel数据的二维数组
String[][] data = new String[rownum][cellnum];
// 循环读取excel中的数据并存入data数组中
for (i = 0; i < rownum; i++) {
for (j = 0; j < cellnum; j++) {
// i表示excel中的每行
HSSFRow row = st.getRow(i);
// j表示excel中的每列
HSSFCell cell = row.getCell(j);
// 首先把所有行列中的值都设为字符串格式(如果单元格纯为数字时无法读取数据)
cell.setCellType(Cell.CELL_TYPE_STRING);
// 把每列的值都存放如定义好的数组中
data[i][j] = cell.getStringCellValue();
}
}
return data;
}
}
三,运行结果
原文地址:https://www.cnblogs.com/zy07zj18/p/8656137.html