51Testing软件测试论坛

标题: selenium数据驱动测试之Excel [打印本页]

作者: 此岸花开    时间: 2015-7-27 17:24
标题: selenium数据驱动测试之Excel
弄了一天了,还是没找到一种比较理想的模式来进入excel的数据驱动测试,哪位有经验的大牛给指点指点吧,万分感谢!!

作者: Scott-cheng    时间: 2015-7-28 08:58
我来献丑一下吧。将用例写在Excel中,遍历执行每条测试用例并将测试结果写入原Excel(或新建一个Excel)中。这样需要保证每条用例都能正常执行(如果出现定位元素失败等情况可以做异常处理并继续下一条测试用例),否则会导致Excel破损。最近我将测试报告以HTML页面形式返回,这样就省去了修改Excel的耗时,提高了脚本执行效率。那如果有更为合适的做法呢,也请大神指点了。。。
作者: jingzizx    时间: 2015-7-28 10:34
数据驱动,必须有数据来控制测试的业务流,而把参数化的东西写在EXCEL里,然后在跑脚本时调用,其实不是数据驱动,而只是较高级的参数化。比如你测一个WEB程序,有很多页面,你可以通过一个数据来控制每次是再哪个页面下工作的(即通过数据来导航到相应的页面)。它是关键字驱动的低级版本,他控制的是函数级的,而关键字是控制动作级的。所以数据驱动应该是可以控制整个测试的.
目前大家一般都照着业务流程,按原子模块写一系列的函数,在函数中,对不通的参数做不同的分支处理。对一系列的函数赋不通的参数,就可以组合出非常多的case,达到数据驱动的目的.

作者: 此岸花开    时间: 2015-7-28 10:48
大侠,  那用excel参数化的时候,我该怎么写函数 来读取excel中的数据
作者: 此岸花开    时间: 2015-7-28 10:48
jingzizx 发表于 2015-7-28 10:34
数据驱动,必须有数据来控制测试的业务流,而把参数化的东西写在EXCEL里,然后在跑脚本时调用,其实不是数据 ...

大侠,  那用excel参数化的时候,我该怎么写函数 来读取excel中的数据
作者: joykao    时间: 2015-7-28 12:29
读取excel的数据可以用jxl。。。比如举个例子:
public static String[][] getDataByTableName(String xlFilePath, String sheetName, String tableName) {

    String[][] tabArray = null;
    try {
      InputStream stream = Tools.class.getClassLoader().getResourceAsStream(xlFilePath);
      Workbook workbook = Workbook.getWorkbook(stream);
      Sheet sheet = workbook.getSheet(sheetName);
      int startRow, startCol, endDashRow, endCol, ci, cj;
      Cell tableStart = sheet.findCell(tableName);
      startRow = tableStart.getRow();
      startCol = tableStart.getColumn();

      Cell endDashCell = sheet.findCell(tableName, startCol + 1, startRow + 1, 100, 64000, false);

      endDashRow = endDashCell.getRow();
      endCol = endDashCell.getColumn();
      tabArray = new String[endDashRow - startRow - 1][endCol - startCol - 1];
      ci = 0;

      for (int i = startRow + 1; i < endDashRow; i++, ci++) {
        cj = 0;
        for (int j = startCol + 1; j < endCol; j++, cj++) {
          tabArray[ci][cj] = sheet.getCell(j, i).getContents();
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    return (tabArray);
  }
作者: jingzizx    时间: 2015-7-28 14:55
此岸花开 发表于 2015-7-28 10:48
大侠,  那用excel参数化的时候,我该怎么写函数 来读取excel中的数据

你参考下:http://www.51testing.com/html/63/n-1546663.html




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2