selenium+testng+java+poi进行excel的数据参数化

Posted 不来也不去

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium+testng+java+poi进行excel的数据参数化相关的知识,希望对你有一定的参考价值。

一,首先要配置好环境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;
}

}

三,运行结果

以上是关于selenium+testng+java+poi进行excel的数据参数化的主要内容,如果未能解决你的问题,请参考以下文章

Selenium2(java)TestNG的使用 七

Selenium+TestNG+Java报错:org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:40)(

Mac系统搭建java+selenium+testng环境

自动化测试框架selenium+java+TestNG——配置篇

selenium第一课(selenium+java+testNG+maven)

Selenium-TestNG-Maven - 获取“java.lang.NoClassDefFoundError:org/openqa/selenium/firefox/FirefoxDriver”