关键字驱动框架入门教程-4-搭建数据引擎-用Apache POI去读取数据
2018-02-01 17:47
761 查看
在上面一篇文章,我们定义了几个动作关键字,并把它们放入到DataEngine的Excel表格里。现在我们想在Selenium自动化测试脚本中去识别Excel中关键字,那么我们就需要利用Java去读取excel的数据,所以,这篇,我们主要来讲如何使用开源jar包工具—Apache POI来读取Excel文件数据。
搭建Data Engine—利用Apache POI
我们需要一种方式去打开Excel和读取里面的数据,并且拿到Selenium自动化测试脚本中。为了实现这个场景,我这里使用Apache POI 类库,Apache POI是一个允许你使用Java去读取和创建和编辑微软的Excel文件格式的一种强大的工具包。我们下面要用到相关类或者方法去读取Excel数据,这些类或者方法是放在‘org.apache.poi.hssf.usermodel’包下。
从Excel中读取数据
1)下载Apache POIjar包文件,并添加到项目的lib类库.点击这里下载。
2)下载后解压,我们把poi-3.17.jar等添加到项目类库
这些包需要添加到项目的librarys中去。
3)新建一个包,名称为utility。
4)在utility包下,新建一个类文件,名称为ExcelUtils.java
5)在ExcelUtils.java,输入以下内容
ExcelUtils.java
下面,我们来修改DriverScript.java文件里面的内容,利用上面写的ExcelUtils类文件,我们在一个一个来读取进行测试。
测试结果:通过,可以看到登录百度的效果(这里登录后提示输入验证码不是本系列解决的重点,这个问题不用管)。
项目代码结构如下图
到这里,我们已经实现了一个关键字驱动框架的骨架部分,关键字驱动框架的重点思路就是如何从Excel文件中读取和判断关键字,所以,所有的测试用例都可以写入到Excel文件。但是目前这个框架就是一个草稿,接下来我们要去给这个框架增加一点东西,变得丰满一点。
搭建Data Engine—利用Apache POI
我们需要一种方式去打开Excel和读取里面的数据,并且拿到Selenium自动化测试脚本中。为了实现这个场景,我这里使用Apache POI 类库,Apache POI是一个允许你使用Java去读取和创建和编辑微软的Excel文件格式的一种强大的工具包。我们下面要用到相关类或者方法去读取Excel数据,这些类或者方法是放在‘org.apache.poi.hssf.usermodel’包下。
从Excel中读取数据
1)下载Apache POIjar包文件,并添加到项目的lib类库.点击这里下载。
2)下载后解压,我们把poi-3.17.jar等添加到项目类库
这些包需要添加到项目的librarys中去。
3)新建一个包,名称为utility。
4)在utility包下,新建一个类文件,名称为ExcelUtils.java
5)在ExcelUtils.java,输入以下内容
ExcelUtils.java
package utility; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileInputStream; import java.io.IOException; public class ExcelUtils { private static XSSFSheet ExcelWSheet; private static XSSFWorkbook ExcelWBook; private static XSSFCell Cell; // 设置Excel文件路径,方便读取到文件 public static void setExcelFile(String Path, String SheetName) throws IOException { FileInputStream ExcelFile = new FileInputStream(Path); ExcelWBook = new XSSFWorkbook(ExcelFile); ExcelWSheet = ExcelWBook.getSheet(SheetName); } // 读取Excel文件单元格数据 public static String getCellData(int RowNum, int ColNum) throws Exception{ Cell = ExcelWSheet.getRow(RowNum).getCell(ColNum); String CellData = Cell.getStringCellValue(); return CellData; } }
下面,我们来修改DriverScript.java文件里面的内容,利用上面写的ExcelUtils类文件,我们在一个一个来读取进行测试。
package executionEngine; import config.ActionsKeywords; import utility.ExcelUtils; /** * create by Anthony on 2018/1/30 */ public class DriverScript { public static void main(String[] args) throws Exception { String excel_path = "C:\\Users\\ydbj0140\\IdeaProjects\\SeleniumKeywordFramework\\src\\dataEngine\\dataEngine.xlsx"; // 加载读取excel文件 ExcelUtils.setExcelFile(excel_path, "Test Steps"); for (int iRow=1;iRow<=9;iRow++){ String sActionKeyword = ExcelUtils.getCellData(iRow, 3); // 和excel文件中关键字进行对比 if(sActionKeyword.equals("openBrowser")){ // 如果Excel文件中存在openBrowser的关键字就会调用openBrowser()方法,进行相关操作;下面其他关键字同理。 ActionsKeywords.openBrowser(); } else if(sActionKeyword.equals("openUrl")){ ActionsKeywords.openUrl(); } else if(sActionKeyword.equals("click_Login_link")){ ActionsKeywords.click_Login_link(); } else if(sActionKeyword.equals("input_Username")){ ActionsKeywords.input_Username(); } else if(sActionKeyword.equals("input_Password")){ ActionsKeywords.input_Password(); } else if(sActionKeyword.equals("click_Submit")){ ActionsKeywords.click_Submit(); } else if(sActionKeyword.equals("closeBrowser")){ ActionsKeywords.closeBrowser(); } } } }
测试结果:通过,可以看到登录百度的效果(这里登录后提示输入验证码不是本系列解决的重点,这个问题不用管)。
项目代码结构如下图
到这里,我们已经实现了一个关键字驱动框架的骨架部分,关键字驱动框架的重点思路就是如何从Excel文件中读取和判断关键字,所以,所有的测试用例都可以写入到Excel文件。但是目前这个框架就是一个草稿,接下来我们要去给这个框架增加一点东西,变得丰满一点。
相关文章推荐
- 关键字驱动框架入门教程-8-测试套件执行引擎
- 关键字驱动框架入门教程-12-数据驱动技术
- 关键字驱动框架入门教程-13-项目打包交付给手工测试人员
- 关键字驱动框架入门教程-7-对象仓库
- 关键字驱动框架入门教程-1-介绍
- 关键字驱动框架入门教程-6-建立常数变量
- 关键字驱动框架入门教程-11-测试结果报告
- 关键字驱动框架入门教程-2-写关键字框架的步骤
- 关键字驱动框架入门教程-9-用log4j输出日志
- 关键字驱动框架入门教程-3-识别并设计实现动作关键字
- 关键字驱动框架入门教程-5-用Java反射机制优化
- 关键字驱动框架入门教程-10-异常处理
- testng入门教程13同文件数据驱动
- Spring Batch入门教程及其框架搭建
- EXTJS入门教程及其框架搭建
- 使用Html5+C#+微信 开发移动端游戏详细教程 :(三)使用html5引擎搭建游戏框架
- mockjs,json-server一起搭建前端通用的数据模拟框架教程
- TensorFlow全新的数据读取方式:Dataset API入门教程
- Golang入门教程(六)关键字和数据类型
- Unix/Linux环境C编程入门教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建