码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-03-27 10:55:59      阅读:1133      评论:0      收藏:0      [点我收藏+]

标签:warnings   number   getc   sys   ram   after   获取   test   技术分享   

一,首先要配置好环境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的数据参数化

标签:warnings   number   getc   sys   ram   after   获取   test   技术分享   

原文地址:https://www.cnblogs.com/zy07zj18/p/8656137.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!