白盒测试的学习之路----(五)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);
}
运行该测试程序,测试结果如下:

白盒测试的学习之路----(五)TestNG的参数分离的更多相关文章
- 白盒测试的学习之路----(四)搭建测试框架TestNG测试
TestNG是一个开源自动化测试框架; TestNG是类似于JUnit,但它不是一个JUnit扩展.它的灵感来源于JUnit.它的目的是优于JUnit的,尤其是当测试集成的类. TestNG消除了大部 ...
- redis——学习之路五(简单的C#使用redis)
redis官方推荐使用的客户端程序 打星星表示推荐使用的客户端程序,一个笑脸表示最近6个月内有过正式活动的.http://redis.io/clients/#c 从这里我们可以判断官方推荐我们使用Se ...
- zigbee学习之路(五):定时器1(查询方式)
一.前言 今天,我们来学习几乎所有单片机都有的功能,定时器的使用,定时器对单片机来说是相当重要的,有了它,单片机就可以进行一些复杂的工作. 二.原理与分析 谈到定时器的控制,我们最先想到的是要给它赋初 ...
- MongoDB学习之路(五)
MongoDB $type 操作符 类型 数字 备注 Double 1 String 2 Object 3 Array 4 Binary data 5 Undefined 6 已废弃 Object i ...
- Java学习之路(五):常见的对象操作
Object对象 我们先来介绍一下API API(Application Programming Interface):应用程序编程接口 Java API 就是Java提供给我们使用的类,这些类将底层 ...
- python学习之路 五:函数式编程
本节重点 掌握函数的作用.语法 掌握作用域.全局变量与局部变量知识 掌握函数名称空间.闭包 一.函数编程基础知识 1.基本定义 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数 ...
- react.js学习之路五
最近没时间写博客,但是我一直在学习react,我发现react是一个巨大的坑,而且永远填不完的坑 关于字符串的拼接: 在react中,字符串的拼接不允许出现双引号“” ,只能使用单引号' ',例如这样 ...
- 嵌入式Linux驱动学习之路(五)u-boot启动流程分析
这里说的u-boot启动流程,值得是从上电开机执行u-boot,到u-boot,到u-boot加载操作系统的过程.这一过程可以分为两个过程,各个阶段的功能如下. 第一阶段的功能: 硬件设备初始化. 加 ...
- Java学习之路(五)
1:补充: 使用super也可以调用父类的成员函数 格式 : super.函数名(); 2:抽象类与抽象函数 抽象函数的定义: 只有函数的定义,没有函数体的函数被称为抽象函数 抽象类的定义: 使用 ...
随机推荐
- 如何解决jQuery Validation针对动态添加的表单无法工作的问题?
为了充分利用ASP.NET MVC在服务端呈现HTML的能力,在<利用动态注入HTML的方式来设计复杂页面>一文中介绍了,通过Ajax调用获取HTML来呈现复杂页面中某一部分界面的解决方案 ...
- ecshop详细的安装教程
ECShop 的安装非常简单.方便,任何一种编码程序的安装方法都是一样的(即 GBK 和 UTF-8 版本的安装方法是一样的) 1.安装前的准备 docs目录下存放有 ECShop 安装说明(inst ...
- .net加载到vb 进程
.net加载到vb 进程时,总是不能加载进去,什么原因呢? 要尝试三个步骤, 首先调试vb ,没有问题,代码能够调试 然后注册.net的dll,生成tlb文件,生成解决方案,调整附加到进程时的选项. ...
- JMeter学习-005-JMeter 主要组件概要介绍及执行顺序
本文将对 JMeter 主要组件(主要涉及 Threads(Users).Test Fragment.逻辑控制器.配置元件.定时器.前置处理器.Sampler.后置处理器.断言.监听器 十大组件)进行 ...
- js获取网站根目录
//js获取网站根路径(站点及虚拟目录),获得网站的根目录或虚拟目录的根地址 function getRootPath(){ var strFullPath=window ...
- OC类方法和实例方法中的self区别
OC类方法和实例方法中的self Objective-C里面既有实例方法也类方法.类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenien ...
- MySQL 部分函数使用
1.DATE_ADD 参考博客:MySQL日期时间函数大全 转 例:DATE_ADD(date,INTERVAL expr type) 2.日期转字符串 DATE_FORMAT 参考博客:MYSQL中 ...
- RouterOS 软路由开启SSH服务器
RouterOS软路由可以支持多种服务,例如SSH.FTP.Telnet.www等等 图形介面操作 命令操作 [admin@MikroTik] > ip service print ...
- MvvmLight 绑定
添加MvvmLight引用,通过Nuget: 加载nuget以后会有ViewModelLocator.cs: 新建自己的ViewModel,继承ViewModelBase: View 通过资源引用Vi ...
- ON_NOTIFY_REFLECT : Message Reflection for Windows Controls
转自: https://msdn.microsoft.com/en-us/library/eeah46xd.aspx TN062: Message Reflection for Windows Con ...