testNG中dataprovider使用的两种方式

Posted aryaz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了testNG中dataprovider使用的两种方式相关的知识,希望对你有一定的参考价值。

testNG的参数化测试有两种方式:xml和dataprovider.个人更喜欢dataprovider,因为我喜欢把测试数据放在数据库里。

一.返回类型是Iterator<Object[]>,不用管有多少组测试数据,可以抽取出来以map的id为参数作为公用的提取数据方法。

@DataProvider(name="loginData")
private Iterator<Object[]> LoginDataProvider() throws IOException {
List<Object[]> result=new ArrayList<Object[]>();
SqlSession session=DatabaseUtil.getSqlSession();
List<Object> alldata=session.selectList("loginTestAll");
Iterator it=alldata.iterator();
while(it.hasNext()){
result.add(new Object[] { it.next() });
}
return result.iterator();

}

 

二.返回类型是Object[][],明确知道有几组测试数据

@DataProvider(name="loginData")

private Object[][] LoginDataProvider() throws IOException {
Object[][] result=null;
SqlSession session=DatabaseUtil.getSqlSession();
result=new Object[][]{{session.selectOne("loginTest",1)},{session.selectOne("loginTest",2)}};
return result;
}

测试调用

@Test(groups="login",dataProvider = "loginData")

public void loginTestCase(LoginTest loginTest) throws IOException {
//用测试数据发起请求,获取响应
String response=getResult(loginTest);

//响应断言
JSONObject rj=new JSONObject(response);
String code=rj.getInt("code")+"";
Assert.assertEquals(code,loginTest.getExpected());

}

 

来源:CSDN
原文:https://blog.csdn.net/wangjie0925/article/details/80653935


以上是关于testNG中dataprovider使用的两种方式的主要内容,如果未能解决你的问题,请参考以下文章

testNG @DataProvider参数化

testng dataprovider接入msyql db初始化参数遇见的问题记录

接口测试(java+testng+ant+jenkins)第六篇testng 二

testng中DataProvider为啥两组数据只执行了一组

TestNG:一个@Test 有多个@DataProvider

testNG-dataprovider实现