1. 程式人生 > >testNG中dataprovider使用的兩種方式

testNG中dataprovider使用的兩種方式

pro ret urn expect highlight 參數化 sdn esp tin

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使用的兩種方式