selenium webdriver读取excel进行数据驱动测试

上一篇 / 下一篇  2015-11-10 17:47:46 / 个人分类:Selenium

http://www.cnblogs.com/liu-ke/p/4223807.html
最近做自动化需要从文件读取数据做参数化,网上发现一个不错的解决方案。
准备:新建一个excel文件,文件名为测试类名,sheet名为测试方法名
        excel第一行为标题,从第二行开始为测试数据

build path:jxl.jar

code:
复制代码
1importjava.io.FileInputStream;2importjava.io.InputStream;3importjava.util.HashMap;4importjava.util.Iterator;5importjava.util.Map;67importorg.testng.Assert;89importjxl.*;1011/**12* Excel放在Data文件夹下</p>13* Excel命名方式:测试类名.xls</p>14* Excel的sheet命名方式:测试方法名</p>15* Excel第一行为Map键值</p>16* 代码参考郑鸿志的Blog17* {@linkwww.zhenghongzhi.cn/post/42.html}18* @ClassName: ExcelDataProvider19* @Description: TODO(读取Excel数据)20*/21publicclassExcelDataProviderimplementsIterator<Object[]>{2223privateWorkbook book         =null;24privateSheet    sheet        =null;25privateintrowNum       = 0;26privateintcurrentRowNo = 0;27privateintcolumnNum    = 0;28privateString[] columnnName;2930publicExcelDataProvider(String classname, String methodname) {3132try{3334intdotNum = classname.indexOf(".");3536if(dotNum > 0) {37classname = classname.substring(classname.lastIndexOf(".") + 1,38classname.length());39}40//从/data文件夹下读取以类名命名的excel文件41String path = "data/" + classname + ".xls";42InputStream inputStream =newFileInputStream(path);4344book =Workbook.getWorkbook(inputStream);45//取sheet46sheet =book.getSheet(methodname);47rowNum =sheet.getRows();48Cell[] cell = sheet.getRow(0);49columnNum =cell.length;50columnnName =newString[cell.length];5152for(inti = 0; i < cell.length; i++) {53columnnName[i] =cell[i].getContents().toString();54}55this.currentRowNo++;5657}catch(Exception e) {58e.printStackTrace();59Assert.fail("unable to read Excel data");60}61}6263publicbooleanhasNext() {6465if(this.rowNum == 0 ||this.currentRowNo >=this.rowNum) {6667try{68book.close();69}catch(Exception e) {70e.printStackTrace();71}72returnfalse;73}else{74//sheet下一行内容为空判定结束75if((sheet.getRow(currentRowNo))[0].getContents().equals(""))76returnfalse;77returntrue;78}79}8081publicObject[] next() {8283Cell[] c = sheet.getRow(this.currentRowNo);84Map<String, String> data =newHashMap<String, String>();85//List<String> list = new ArrayList<String>();8687for(inti = 0; i <this.columnNum; i++) {8889String temp = "";9091try{92temp =c[i].getContents().toString();93}catch(ArrayIndexOutOfBoundsException ex) {94temp = "";95}9697//if(temp != null&& !temp.equals(""))98//list.add(temp);99data.put(this.columnnName[i], temp);100}101Object object[] =newObject[1];102object[0] =data;103this.currentRowNo++;104returnobject;105}106107publicvoidremove() {108thrownewUnsupportedOperationException("remove unsupported.");109}110}

TAG: Excel

 

评分:0

我来说两句

Open Toolbar