• 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;
    }

    }

    三,运行结果

  • 相关阅读:
    POJ-1189 钉子和小球(动态规划)
    POJ-1191-棋盘分割(动态规划)
    Java实现 LeetCode 730 统计不同回文子字符串(动态规划)
    Java实现 LeetCode 730 统计不同回文子字符串(动态规划)
    Java实现 LeetCode 729 我的日程安排表 I(二叉树)
    Java实现 LeetCode 729 我的日程安排表 I(二叉树)
    Java实现 LeetCode 729 我的日程安排表 I(二叉树)
    Java实现 LeetCode 728 自除数(暴力)
    Java实现 LeetCode 728 自除数(暴力)
    Java实现 LeetCode 728 自除数(暴力)
  • 原文地址:https://www.cnblogs.com/zy07zj18/p/8656137.html
Copyright © 2020-2023  润新知