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);
    }

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

  • 相关阅读:
    [深度概念]·K-Fold 交叉验证 (Cross-Validation)的理解与应用
    [天池竞赛项目]2019菜鸟全球科技挑战赛 —智能体积测量(队员招募)
    [MXNet逐梦之旅]练习一·使用MXNet拟合直线手动实现
    [深度学习工具]·极简安装Dlib人脸识别库
    [数据科学从零到壹]·泰坦尼克号生存预测(数据读取、处理与建模)​​​​​​​
    Java 多线程
    javaAPI中的常用 类 以及接口
    QQ数据库管理
    java 对象和封装
    事务、视图、索引、备份、还原
  • 原文地址:https://www.cnblogs.com/loleina/p/5133587.html
Copyright © 2011-2022 走看看