关键字驱动框架入门教程-4-搭建数据引擎-用Apache POI去读取数据

       在上面一篇文章,我们定义了几个动作关键字,并把它们放入到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

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文件。但是目前这个框架就是一个草稿,接下来我们要去给这个框架增加一点东西,变得丰满一点。



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第三代通信技术(3G)的应用已在全球范围内逐步展开,各大设备供应商正积极研发能提供更高性能的新一代网管系统来满足市场需求。网管系统是一个庞大复杂的通信管理系统,由于客户的功能需求以及网管系统自身技术的更新等原因使网管系统的版本不断更新,网管系统最终系统测试的工作量会很大。因此需要引入自动化测试来提高测试效率保证测试质量。 本文首先分析了当前网管系统测试现状以及对自动化测试的需求。在这样的前提条件下,论文采用了关键字驱动脚本技术,同时吸取了当前流行的自动化测试框架中一些先进的思想,提出了一个适合网管系统测试的自动化测试框架。然后论文对该框架的测试流程进行详细的描述,在此框架的基础上进行系统的总体设计,并完成系统主要模块的设计与实现。本文最终实现了一个基于关键字驱动的自动化测试平台APK(Automated test Platform based on Keywords)。 在APK的实现过程中采用基于C/S的网络框架,该网络框架可以实现多用户定制测试任务并完成分布式自动化测试。在APK系统框架中对关键字进行了重新的定义,关键字不再是目前流行的框架中所定义的原子动作,而是一个用于实现一项测试规程的原子动作序列,同时该框架将结果验证环节放到关键字内部去实现。接口设计方面APK提供了一个外部接口用来整合网管系统中现有的业务测试工具,同时为了满足日后功能扩展的需要APK还预留了一个扩展接口。 APK可以应用于Java应用程序的GUI(Graphical User Interface)自动化测试,同时结合外部接口调用外部工具还可以完成较复杂的业务自动化测试。目前APK已经应用于网管系统的回归测试、边界值测试和大话务量环境数据的配置中,并已经取得了显著的效果,达到了预期的目标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值