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

  方式二:

package com.hct.Job;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class TestCSV {
//讀取CSV文件的靜態(tài)方法,使用CSV文件的文件路徑作為函數(shù)參數(shù)
public static Object[][] getSearchData(String FileName) throws IOException{
List<Object[]> records=new ArrayList<Object[]>();
String record;
//設(shè)定UTF-8字符集,使用帶緩沖區(qū)的字符輸入流BufferedReader讀取文件內(nèi)容
BufferedReader file=new BufferedReader(new InputStreamReader(new FileInputStream(FileName),"UTF-8"));
//忽略讀取CSV文件的標(biāo)題行(第一行)
file.readLine();
//遍歷讀取文件中除第一行外的其他所有內(nèi)容并存儲(chǔ)在名為records的ArrayList中,每一行records中存儲(chǔ)的對(duì)象為一個(gè)String數(shù)組
while((record=file.readLine())!=null){
String fields[]=record.split(",");
//            System.out.println(fields);
records.add(fields);
}
//關(guān)閉文件對(duì)象
file.close();
//將存儲(chǔ)測(cè)試數(shù)據(jù)的List轉(zhuǎn)換為一個(gè)Object的二維數(shù)組
Object[][] results=new Object[records.size()][];
//設(shè)置二位數(shù)組每行的值,每行是一個(gè)Object對(duì)象
for(int i=0;i<records.size();i++){
results[i]=records.get(i);
}
return results;
}
@DataProvider(name="searchData")
public static Object[][] data() throws IOException
{
String filename ="D:\eclipse-workspace\Job\src\test\java\com\hct\Job\demo.csv";
return getSearchData(filename);//獲取CSV文件的測(cè)試數(shù)據(jù)
}
@Test(dataProvider="searchData")
public void testData(String n1,String n2,String n3){
System.out.println(n1+"+++++++++++++++++++++++++++++"+n2+"+++++++++++++++++"+n3);
}
}

上一頁(yè)12下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd