之前的测试用例直接嵌套在代码中,不便于维护和测试设计,应该单独把测试用例放在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);
}

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

转载于:https://www.cnblogs.com/loleina/p/5133587.html

白盒测试的学习之路----(五)TestNG的参数分离相关推荐

  1. java 设置年轻代堆大小,[JVM学习之路]五堆(一)堆的内存结构参数设置分代思想内存分配...

    [JVM学习之路]五堆(一)堆的内存结构参数设置分代思想内存分配 [JVM学习之路]五.堆(一)堆的内存结构.参数设置.分代思想.内存分配策略及TLAB 一.堆的核心概述 堆的特点: 1.一个jvm实 ...

  2. Android SurfaceFlinger 学习之路(五)----VSync 工作原理

    原址 VSync信号的科普我们上一篇已经介绍过了,这篇我们要分析在SurfaceFlinger中的作用.(愈发觉得做笔记对自己记忆模块巩固有很多帮助,整理文章不一定是用来给别人看的,但一定是为加强自己 ...

  3. Leaflet学习之路五——动态绘制图形(点、线、圆、多边形)

    leaflet动态绘制图形 动态绘点 动态绘线 动态绘多边形 动态绘制矩形 2020.3.16更新 更新日志: 2019.1.14:更新了绘制多边形时tmpline没有移除的问题 2019.1.15: ...

  4. 前端Vue学习之路(五)插件的使用

    vant插件使用 这里我们是用的语法是vue2.0 所以是 npm i vant -S 用法 1.按需引入的话 找到package.json文件 添加以下内容 plugins:[['import', ...

  5. IOS学习之路五(代码实现UITableView)

    先展示一下运行结果: 代码实现: 1.先创建一个空项目: 2.创建一个Controller:(TableViewController) 在AppDelegate.h中声明属性: [cpp] view ...

  6. php学习之路五(表单验证)

    <html><head><title>PHP处理表单</title></head><body><h2>请填写个人信息 ...

  7. Android学习之路五:Dialog和Toast

    Dialog是一种长时间驻留的弹窗,只有在你想要它小时时才会消失, Toast是短时间弹窗,它会在显示消息后很快消失. Dialog案例一(只有"OK"): java代码: new ...

  8. Hadoop学习之路(五):Hadoop交互关系型数据库(MySQL)

    内容简介 一.Hadoop与数据库交互简介 二.操作前的准备 1.创建表 2.将数据插入表words中 2.将MySQL的驱动分发到所有的Hadoop节点 三.Hadoop与MySQL交互实现 1.创 ...

  9. Python学习之路五

    文章目录 迭代器 高阶函数 map reduce sorted filter 推导式 列表推导式 集合推导式 字典推导式 生成器 迭代器 迭代器:能被next进行调用,并且不断返回一下值的对象. 特征 ...

  10. (无人机方向)ros小白学习之路(五)mavros消息的订阅和发布与offboard例程仿真与解析

    文章目录 前言 应用mavros控制无人机消息流 以mavros中setpoint_position/local为例子 1:确定话题的功能和消息类型 如果快速找到对应的mavlink消息 2:确定话题 ...

最新文章

  1. 上汽集团金忠孝: 人工智能时代的汽车将发生颠覆的变革
  2. javascript笔记:推荐使用“百度统计”并且拷贝百度统计的前端框架
  3. C++需要输出一个参数的地址时可能达不到预期的效果
  4. 解决逆向工程mapper映射文件不发布问题
  5. SVN Cannot merge into a working copy that has local modifications
  6. 我的学习工作经历,一个园林专业中专毕业生的IT之路
  7. Android7.0 发生的android.os.FileUriExposedException错误
  8. 边缘计算ARMNN(一):ARM-ARMNN-ComputeLibrary rk3399 编译配置
  9. Kotlin中正则表达式分析
  10. Windows客户端使用教程
  11. Fiddler抓取雷电模拟器数据包,模拟器代理设置
  12. 批量将WORD转换成PDF文件
  13. 求助ReportMachine报表,收集ReportMachine资料
  14. java文字竖排_Java输出竖排文字
  15. 移动端APP设计趋势
  16. 三维空间——点线面关系
  17. 1468 - 平方矩阵 Python
  18. java实现上位机与下位机串口通信
  19. rono在oracle的作用_ColorOS产品规划总经理爆料预热Reno,这些功能你想要吗?
  20. 字节跳动扣响搜索扳机

热门文章

  1. 关于c语言中栈和堆释放的问题
  2. django中admin的使用
  3. mvc:annotation-driven/与mvc:default-servlet-handler/之间的一个问题(转)
  4. Linux中下载,压缩,解压等命令
  5. 补发《超级迷宫》站立会议八
  6. IIS------IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决办法
  7. Win10/Win8快速启动失效/卡logo 的解决方法汇总
  8. 1622: [Usaco2008 Open]Word Power 名字的能量
  9. 14.卷2(进程间通信)---System V 共享内存区
  10. 3.高性能MySQL --- 服务器性能剖析