白盒测试的学习之路----(五)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);
}
运行该测试程序,测试结果如下:
转载于:https://www.cnblogs.com/loleina/p/5133587.html
白盒测试的学习之路----(五)TestNG的参数分离相关推荐
- java 设置年轻代堆大小,[JVM学习之路]五堆(一)堆的内存结构参数设置分代思想内存分配...
[JVM学习之路]五堆(一)堆的内存结构参数设置分代思想内存分配 [JVM学习之路]五.堆(一)堆的内存结构.参数设置.分代思想.内存分配策略及TLAB 一.堆的核心概述 堆的特点: 1.一个jvm实 ...
- Android SurfaceFlinger 学习之路(五)----VSync 工作原理
原址 VSync信号的科普我们上一篇已经介绍过了,这篇我们要分析在SurfaceFlinger中的作用.(愈发觉得做笔记对自己记忆模块巩固有很多帮助,整理文章不一定是用来给别人看的,但一定是为加强自己 ...
- Leaflet学习之路五——动态绘制图形(点、线、圆、多边形)
leaflet动态绘制图形 动态绘点 动态绘线 动态绘多边形 动态绘制矩形 2020.3.16更新 更新日志: 2019.1.14:更新了绘制多边形时tmpline没有移除的问题 2019.1.15: ...
- 前端Vue学习之路(五)插件的使用
vant插件使用 这里我们是用的语法是vue2.0 所以是 npm i vant -S 用法 1.按需引入的话 找到package.json文件 添加以下内容 plugins:[['import', ...
- IOS学习之路五(代码实现UITableView)
先展示一下运行结果: 代码实现: 1.先创建一个空项目: 2.创建一个Controller:(TableViewController) 在AppDelegate.h中声明属性: [cpp] view ...
- php学习之路五(表单验证)
<html><head><title>PHP处理表单</title></head><body><h2>请填写个人信息 ...
- Android学习之路五:Dialog和Toast
Dialog是一种长时间驻留的弹窗,只有在你想要它小时时才会消失, Toast是短时间弹窗,它会在显示消息后很快消失. Dialog案例一(只有"OK"): java代码: new ...
- Hadoop学习之路(五):Hadoop交互关系型数据库(MySQL)
内容简介 一.Hadoop与数据库交互简介 二.操作前的准备 1.创建表 2.将数据插入表words中 2.将MySQL的驱动分发到所有的Hadoop节点 三.Hadoop与MySQL交互实现 1.创 ...
- Python学习之路五
文章目录 迭代器 高阶函数 map reduce sorted filter 推导式 列表推导式 集合推导式 字典推导式 生成器 迭代器 迭代器:能被next进行调用,并且不断返回一下值的对象. 特征 ...
- (无人机方向)ros小白学习之路(五)mavros消息的订阅和发布与offboard例程仿真与解析
文章目录 前言 应用mavros控制无人机消息流 以mavros中setpoint_position/local为例子 1:确定话题的功能和消息类型 如果快速找到对应的mavlink消息 2:确定话题 ...
最新文章
- 上汽集团金忠孝: 人工智能时代的汽车将发生颠覆的变革
- javascript笔记:推荐使用“百度统计”并且拷贝百度统计的前端框架
- C++需要输出一个参数的地址时可能达不到预期的效果
- 解决逆向工程mapper映射文件不发布问题
- SVN Cannot merge into a working copy that has local modifications
- 我的学习工作经历,一个园林专业中专毕业生的IT之路
- Android7.0 发生的android.os.FileUriExposedException错误
- 边缘计算ARMNN(一):ARM-ARMNN-ComputeLibrary rk3399 编译配置
- Kotlin中正则表达式分析
- Windows客户端使用教程
- Fiddler抓取雷电模拟器数据包,模拟器代理设置
- 批量将WORD转换成PDF文件
- 求助ReportMachine报表,收集ReportMachine资料
- java文字竖排_Java输出竖排文字
- 移动端APP设计趋势
- 三维空间——点线面关系
- 1468 - 平方矩阵 Python
- java实现上位机与下位机串口通信
- rono在oracle的作用_ColorOS产品规划总经理爆料预热Reno,这些功能你想要吗?
- 字节跳动扣响搜索扳机
热门文章
- 关于c语言中栈和堆释放的问题
- django中admin的使用
- mvc:annotation-driven/与mvc:default-servlet-handler/之间的一个问题(转)
- Linux中下载,压缩,解压等命令
- 补发《超级迷宫》站立会议八
- IIS------IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决办法
- Win10/Win8快速启动失效/卡logo 的解决方法汇总
- 1622: [Usaco2008 Open]Word Power 名字的能量
- 14.卷2(进程间通信)---System V 共享内存区
- 3.高性能MySQL --- 服务器性能剖析