testNG框架的四种传参方式

第一种:dataProvider方式,注意注解test的名称一定要对应类名称和方法名

package test;

public class DataProvider {
@org.testng.annotations.DataProvider
public static Object[][] testdataProvider(){
return new Object[][]{{1,2,3},{4,5,6}};
}
}
package test;

import org.testng.Assert;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class Dome04Test {

@Test(dataProvider = "testdataProvider",dataProviderClass = test.DataProvider.class)
public void testadd(int a ,int b,int c){
Dome04Test dome04 = new Dome04Test();
int d =dome04.add(a,b);
Assert.assertEquals(c,d);
}

public int add(int a,int b){
return a+b;
}
}
第二种,test.xml格式,注意类名称的配置和方法名称的配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="suite">
<test name="FirstProject" enabled="true" >
<classes>
<class name="test.Dome05testXml">
<methods>
<include name="testadd" />
<parameter name="a" value="1" />
<parameter name="b" value="2" />
<parameter name="c" value="3" />
</methods>
</class>
</classes>
</test>
</suite>
package test;

import org.testng.Assert;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class Dome05testXml {
@Test
@Parameters({"a","b","c"})
public void testadd(int a ,int b,int c){
Dome04Test dome04 = new Dome04Test();
int d =dome04.add(a,b);
Assert.assertEquals(c,d);
}

public int add(int a,int b){
return a+b;
}
}

第三种:通过excel传参,重点是读取excel值
读取excel的工具类如下:
package excelUtil;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

public class ExcelUtil {
// public Workbook workbook;
public List<List<String>> readXls(String path) throws Exception {
InputStream is = new FileInputStream(path);
// HSSFWorkbook 标识整个excel
XSSFWorkbook hssfWorkbook = new XSSFWorkbook (is);
List<List<String>> result = new ArrayList<List<String>>();
int size = hssfWorkbook.getNumberOfSheets();
// 循环每一页,并处理当前循环页
for (int numSheet = 0; numSheet < size; numSheet++) {
// HSSFSheet 标识某一页
Sheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
if (hssfSheet == null) {
continue;
}
// 处理当前页,循环读取每一行
for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
// HSSFRow表示行
XSSFRow hssfRow = ((XSSFSheet) hssfSheet).getRow(rowNum);
int minColIx = hssfRow.getFirstCellNum();
System.out.println("minColIx = " + minColIx);
int maxColIx = hssfRow.getLastCellNum();
System.out.println("maxColIx = " + maxColIx);
List<String> rowList = new ArrayList<String>();
// 遍历改行,获取处理每个cell元素
for (int colIx = minColIx; colIx < maxColIx; colIx++) {
// HSSFCell 表示单元格
XSSFCell cell = hssfRow.getCell(colIx);
if (cell == null) {
continue;
}
rowList.add(cell.toString());
}
result.add(rowList);
}
}
return result;
}

/**
* 测试工具类是否成功
* @param args
*/
public static void main(String[] args) {
String path = "C:\\Users\\wanggang231\\Desktop\\123456.xlsx";
try {
List<List<String>> result = new ExcelUtil().readXls(path);
System.out.println(result.size());
for (int i = 0; i < result.size(); i++) {
List<String> model = result.get(i);
System.out.println("字段:" + model.get(0) + "--> 长度:" + model.get(1));
}

} catch (Exception e) {
e.printStackTrace();
}
}

}
测试类如下:
public class ExcelDomeTest {
@Test
public void excelData()throws Exception{
String path = "C:\\Users\\wanggang231\\Desktop\\123456.xlsx";
List<List<String>> resultlist = new ExcelUtil().readXls(path);
for (int i = 0;i<resultlist.size();i++){
List list = resultlist.get(i);
Assert.assertEquals(list.get(0),1);
}

}
}

第四种,通过数据库方式,就是利用数据库连接类进行查询数据库,然后再把获取到的数据进行处理遍历,得到想要的字段,赋给需要的方法进行测试。由于本地没有安装数据库,不进行展示了

好了以上就是testNG测试传参的四种方式,欢迎有不同看法的朋友进行批评和指正。

 

转载于:https://www.cnblogs.com/testDevelopement-1/p/10844424.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值