亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > TestNG
兩種方式TestNG dataprovider結(jié)合csv做測試驅(qū)動
作者:hct118 發(fā)布時間:[ 2016/11/27 13:58:25 ] 推薦標簽:單元測試 測試驅(qū)動

  方式一:
  第一、讀取csv數(shù)據(jù)源碼
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
import java.util.regex.Matcher;
public class CSVData implements Iterator<Object[]> {
BufferedReader bufreader;
ArrayList<String> csvList=new ArrayList<String>();
int rowNum=0;     //行數(shù)
int columnNum=0;  //列數(shù)
int curRowNo=0;   //當(dāng)前行數(shù)
String columnName[];  //列名
/**
* 在TestNG中由@DataProvider(dataProvider = "name")修飾的方法
* 取csv文件數(shù)據(jù)時時,調(diào)用此類構(gòu)造方法(此方法會得到列名并將當(dāng)前行移到下一行)執(zhí)行后,轉(zhuǎn)發(fā)到
* TestNG自己的方法中去,然后由它們調(diào)用此類實現(xiàn)的hasNext()、next()方法
* 得到一行數(shù)據(jù),然后返回給由@Test(dataProvider = "name")修飾的方法,如此
* 反復(fù)到數(shù)據(jù)讀完為止
* @param fileName
* @throws IOException
*/
public  CSVData(String fileName) throws IOException{
File directory=new File(".");
String path=".src.test.resources.testdata.";
String absolutePath=directory.getCanonicalPath()+path.replaceAll("\.", Matcher.quoteReplacement("\"))+fileName;
System.out.println("路徑:"+absolutePath);
//將csv中的數(shù)據(jù)讀取到csvList中
File csv=new File(absolutePath);
bufreader=new BufferedReader(new FileReader(csv));
while (bufreader.ready()) {
csvList.add(bufreader.readLine());
this.rowNum++;
}
//獲取列名存放在columnName、列數(shù)
String st=csvList.get(0);
System.out.println("列名是:===="+st);
String[] str=csvList.get(0).split(",");
this.columnNum=str.length;
columnName=new String[columnNum];
//獲取列名
for (int i = 0; i < columnNum; i++) {
columnName[i]=str[i];
}
this.curRowNo++;
System.out.println(csvList+"======================"+columnName);
}
@Override
public boolean hasNext() {
// TODO Auto-generated method stub
if(rowNum==0||curRowNo>=rowNum){
try {
bufreader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}else{
return true;
}
}
/**
* 獲取一組參數(shù),即一行數(shù)據(jù)
*/
@Override
public Object[] next() {
// TODO Auto-generated method stub
Map<String,String> s=new TreeMap<String,String>();
String csvCell[]=csvList.get(curRowNo).split(",");
for(int i=0;i<this.columnNum;i++){
s.put(columnName[i], csvCell[i]);
}
Object[] d=new Object[1];
d[0]=s;
this.curRowNo++;
return d;
}
@Override
public void remove() {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("remove unsupported");
}
}
  第二、testng中使用測試
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import com.zhongan.investmentlink.wangyi.CSVData;
public class TestCSV {
@DataProvider(name="num")
public Iterator<Object[]> Numbers() throws IOException{
String fileName="UnderWriteRequest.csv";
return (Iterator<Object[]>)new CSVData(fileName);
}
@Test(dataProvider="num")
public void testAdd(Map<String, String> data){
String num1=data.get("totalPremium");
String num2=data.get("holderName");
System.out.println(num1+"================="+num2);
}
}

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 国产在线欧美精品中文一区 | 国产精品偷伦视频播放 | 男人午夜影院 | 久久艹人人艹 | 色婷亚洲 | 91免费永久国产在线观看 | 亚洲日本天堂在线 | 天堂网a | hdⅹvideos成人 | 国产福利微拍精品一区二区 | freee×xx性欧美 | 成人看片在线观看免费 | 欧美视频一区二区三区在线观看 | 成人亚洲综合 | 15yc宅男影院在线观看 | 九九影院韩国理伦片 | 欧美成人手机视频免费播放 | 全日本爽视频在线 | 5252色| 毛片a级毛片免费播放100 | 一级黄色a毛片 | 一级毛片不卡片免费观看 | 欧美日韩中文字幕在线手机版本 | 狠狠色做五月深爱婷婷 | 妞干网在线观看视频 | 最新黄色免费网站 | 免费在线欧美 | 国产精品亚洲一区二区三区久久 | 香蕉成人国产精品免费看网站 | 亚洲国产日韩在线观看 | 国产黄色片视频 | 亚洲欧美日韩综合久久久久 | 午夜黄色小视频 | 日韩一级一片 | 日韩 欧美 综合 在线 制服 | 在线国产日韩 | 免费精品国产 | 中文字幕一区日韩在线视频 | 久久天天躁日日躁狠狠躁 | 久久国产精品-国产精品 | 午夜视频黄色 |