zoukankan      html  css  js  c++  java
  • 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;
    }

    }

    三,运行结果

  • 相关阅读:
    win10 激活
    window10 将程序的快捷方式加到右键"发送到"
    UML 类图基本了解
    php move_uploaded_file 上传的文件移动带中文文件名的的问题
    php 的 PHPExcel1.8.0 使用
    msyql 数据类型存储大小及数据范围
    MySQL数据库设计规范
    测试工具
    show tables 或者 show databases 结果太多如何再筛选
    ubuntu 16.04 周期定时任务 crontab 的 使用
  • 原文地址:https://www.cnblogs.com/zy07zj18/p/8656137.html
Copyright © 2011-2022 走看看