在RFT中使用Excel进行数据驱动测试

QTP 中,可以 通过 COM访问 Excel ,或者通过 ADO 以数据库查询的方式访问 Excel 中存储的数据。而在 RFT 中,则好像没有这么直接的用法。需要导入专门处理 Excel 数据的 JXL 包:

http://www.andykhan.com/jexcelapi/

JExcelApi is a Java API for reading, writing and modifying the contents of Excel spreadsheets

 

 

封装一个处理 Excel 的类出来:

package Lib;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import jxl.Cell;

import jxl.Sheet;

import jxl.Workbook;

import jxl.write.Label;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

 

public class ExcelService {

 

       private String path = null;

       private String sheetname = null;

      

       public ExcelService(String FilePath,String SheetName){

         path = FilePath;

         sheetname = SheetName;

       }

      

         public String read(int colum, int row) throws Exception {

                FileInputStream fileInputStream = new FileInputStream(path);

                Workbook workbook = Workbook.getWorkbook(fileInputStream);

                Sheet sheet = workbook.getSheet(sheetname);

                Cell cell = sheet.getCell(colum, row);

                String content = cell.getContents();

                workbook.close();

                fileInputStream.close();

                return content;

                }

        

         public int getRowCount() throws Exception {

                FileInputStream fileInputStream = new FileInputStream(path);

                Workbook workbook = Workbook.getWorkbook(fileInputStream);

                Sheet sheet = workbook.getSheet(sheetname);

                int count = sheet.getRows();

                workbook.close();

                fileInputStream.close();

                return count;

                }

        

         public int getClumnCount() throws Exception {

                FileInputStream fileInputStream = new FileInputStream(path);

                Workbook workbook = Workbook.getWorkbook(fileInputStream);

                Sheet sheet = workbook.getSheet(sheetname);

                int count = sheet.getColumns();

                workbook.close();

                fileInputStream.close();

                return count;

                }

 

}

 

然后使用 Excel 数据作为数据驱动的数据源:

    public void testMain(Object[] args)

    {

          ExcelService excel = new ExcelService( "D://RFT//RFT_Project//DataDriven//Data//TestExcelData.xls" , "Sheet1" );

          try {

            int rowCount = excel.getRowCount();

            int colCount = excel.getClumnCount();

            for ( int i=0;i

            {

                System. out .println( "new line:" );

                for ( int j=0;j

                    System. out .println(excel.read(j, i));//取到Excel的每个单元格的数据

                }

            }

          } catch (Exception e) {

            e.printStackTrace ();

          }

                      

    }

 

 

你可能感兴趣的:(自动化测试,\,框架设计,RFT,excel,exception,string,path,newline,null)