selenium 数据驱动

来源:互联网 发布:手机图片标注软件 编辑:程序博客网 时间:2024/05/20 05:28

我们在页面的测试中,会发现很多输入框的测试,这些输入框中我们需要各种不同类型的数据来测试程序是否能正确处理,因此会涉及到一个“参数化”的过程,本文简单介绍Selenium中如何利用Excel实现“参数化“

1、使用的依赖包

我们可以使用poi包或者jxl包来操作Excel对象,本文使用jxl包介绍
百度:jxl.jar便能搜索到相关包并下载
注:jxl包只能支持excel2003
将该包引入项目中

2、操作Excel

程序清单1-生成Excel文件:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
package com.test; // 生成Excel的类 import  java.io.File; import  jxl.Workbook;import  jxl.write.Label;import  jxl.write.WritableSheet;import  jxl.write.WritableWorkbook; public class CreateExcel{    public static void main(String args[]){    }} class Create_Excel{    public void createexcel(){try{            //  打开文件             WritableWorkbook book = Workbook.createWorkbook(new File("test.xls"));            //  生成名为“第一页”的工作表,参数0表示这是第一页             WritableSheet sheet = book.createSheet("第一页",0);            //  在Label对象的构造子中指名单元格位置是第一列第一行(0,0)            //  以及单元格内容为test             Label label1 = new  Label(0,0,"test");            Label label2 = new  Label(1,1,"test");             //  将定义好的单元格添加到工作表中             sheet.addCell(label1);            sheet.addCell(label2);            /*             * 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为555            */            jxl.write.Number number = new jxl.write.Number(1,0,555);           sheet.addCell(number);            //  写入数据并关闭文件            book.write();           book.close();        }catch(Exception e){           System.out.println(e);       }    }}

程序清单2-读取Excel文件:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
package com.Test.function; // 读取Excel的类 import  java.io.File;import  jxl.Cell;import  jxl.Sheet;import  jxl.Workbook; public class ReadExcel{    //申明一些基础变量和对象    static String result;    static Workbook book;    static Sheet sheet;     //test    public static void main(String args[]){    //readExcel(0,1,0);    excelNum(0);    }      /*     * 获取某个单元格的内容     * 参数1:第几个工作表     * 参数2:第几列     * 参数3:第几行     * 参数都从0开始     * 返回值:当前单元格的数据     */    public static String readExcel(int no,int row,int line){    try{        //先找到我们的excel文件test.xls            book = Workbook.getWorkbook(new File("test.xls"));            //  获得第no个工作表对象(Excel中会有很多sheet)             sheet = book.getSheet(no);            //  得到第row列第line行的单元格             Cell cell1 = sheet.getCell(row,line);            //获取row列line行对应的单元格中的数据            result = cell1.getContents();            //只是打印出看一下是否正确            System.out.println(result);            //关闭Workbook对象            book.close();         }catch(Exception e){            System.out.println(e);         }         //返回单元格内容 return result;    }     //返回行数    public static int excelNum(int no){    int col = 0;    int row = 0;    try{        //同上        book = Workbook.getWorkbook(new File("test.xls"));        //获取第no个工作表        sheet = book.getSheet(no);        //得到行数和列数        col = sheet.getColumns();//列数        row = sheet.getRows();//行数        System.out.println(col+" 列");        System.out.println(row+" 行");        book.close();    }catch(Exception e){        System.out.println(e);    }    //返回行数    return row;    }}

程序清单3-更新Excel文件:

1234567891011121314151617181920212223242526272829
package com.test; import  java.io.File;import  jxl.Workbook;import  jxl.write.Label;import  jxl.write.WritableSheet;import  jxl.write.WritableWorkbook; /* * 更新Excel中的内容 */public class UpdateExcel{    public static void main(String args[]){        try{            //  Excel获得文件             Workbook wb = Workbook.getWorkbook(new File("test.xls"));            //  打开一个文件的副本,并且指定数据写回到原文件             WritableWorkbook book = Workbook.createWorkbook(new File("test.xls"),wb);            //  添加一个工作表             WritableSheet sheet = book.createSheet("第一页",1);            //  添加单元格内容            sheet.addCell(new Label(0,0,"第一页的测试数据"));            book.write();            book.close();        }catch(Exception e){            System.out.println(e);        }    } }
0 0