zoukankan      html  css  js  c++  java
  • 白盒测试的学习之路----(五)TestNG的参数分离

         之前的测试用例直接嵌套在代码中,不便于维护和测试设计,应该单独把测试用例放在excel内,然后程序从中读取数据到相应的接口内即可。使用ava程序对Microsoft Office格式档案读和写的功能提供的POI库就可以完成读取数据的功能,而其中又主要使用的是HSSF类,该类 提供读写Microsoft Excel格式档案的功能。编写ParserExcel类,主要有三个函数:

     其中,readExcelContent方法主要用于读取excel的sheet下的相关数据,保存到数组Object中,并返回;showContent是自己测试的时候,打印出读取的数据所用,getCellFormatValue主要是用于将从excel中读取的数据进行格式转换,判断当前Cell的Type,然后进行各种处理;核心代码如下:

    public Object[][] readExcelContent(String sheetName) {
          sheet = wb.getSheet(sheetName);
          int rowNum = sheet.getLastRowNum();
         //getRow(int rownum) ,Returns the logical row (not physical) 0-based.
        row = sheet.getRow(2);
         //getPhysicalNumberOfCells:Gets the number of defined cells (NOT number of cells in the actual row!)
        int colNum = row.getPhysicalNumberOfCells();
        Object[][] ExcelInfo = new Object[rowNum-3][colNum-1];
        for (int i = 0; i < rowNum-3; i++) {
       row = sheet.getRow(i + 3);
       for (int j = 0; j < colNum-1; j++) {
        ExcelInfo[i][j] = getCellFormatValue(row.getCell(j+1)).trim();
    }
    }
        return ExcelInfo;
    }

    测试用例简单设计如下:

    然后修改测试程序代码:

    public class testSourceCode {

    static String tmp = "D:\testcase.xls";
    private static ParserExcel pe = new ParserExcel(tmp);


    @Test(dataProvider="providerMethod")
    public void testjudgeKindOfTriangle(String sa,String sb,String sc,String Expt) {
    int a=Integer.parseInt(sa);
    int b=Integer.parseInt(sb);
    int c=Integer.parseInt(sc);
    int tmp=Integer.parseInt(Expt);
    int reslut =TriangleJudgeSourceCode.judgeKindOfTriangle(a,b,c);
    Assert.assertEquals(reslut, tmp);
    }


    @DataProvider
    public static Object[][] providerMethod(Method method){
    String sheetName = method.getName();
    System.out.println(sheetName);
    return pe.readExcelContent(sheetName);
    }

    运行该测试程序,测试结果如下:

  • 相关阅读:
    _ 下划线 Underscores __init__
    Page not found (404) 不被Django的exception中间件捕捉 中间件
    从装修儿童房时的门锁说起
    欧拉定理 费马小定理的推广
    线性运算 非线性运算
    Optimistic concurrency control 死锁 悲观锁 乐观锁 自旋锁
    Avoiding Full Table Scans
    批量的单向的ssh 认证
    批量的单向的ssh 认证
    Corrupted MAC on input at /usr/local/perl/lib/site_perl/5.22.1/x86_64-linux/Net/SSH/Perl/Packet.pm l
  • 原文地址:https://www.cnblogs.com/loleina/p/5133587.html
Copyright © 2011-2022 走看看