0

私の最初の要件は、2つのExcelシートがあることです

1 番目のシートには FirstName,Last Name が含まれます 2 番目のシートには Company ,Email が含まれます

私は2つのシートデータを結合してテストに渡す必要があり、テストではそれが必要です

最初のセット .... FirstName、LastName、Company、Email。2 番目のセット.. FirstName、LastName、Company、Email..

データがExcelシートに存在するまで..ここでの問題は、パラメータを渡すときに4つのパラメータを渡す必要がありますが、Excelシート2のパラメータでは...

助けが必要です......

================================================== =================================================

public Object[][] dataDetails() throws BiffException, IOException{

    String pathofExcel="D:\\Test-Excel3.xls";
    String sheetName="test";

    Generics gen=new Generics();
    String employeeDetails[][]=gen.excelRead(pathofExcel, sheetName);


    return employeeDetails;
}

public Object[][] dataDetails2() throws BiffException, IOException{

    String pathofExcel="D:\\Test-Excel4.xls";
    String sheetName="test";

                 Generics gen=new Generics();
    String employeeDetailss[][]=gen.excelRead(pathofExcel, sheetName);

    return employeeDetailss;
}

      @DataProvider(name="enterformDetails")
public Object[][] dp() throws BiffException, IOException {
      List<Object[]> result = Lists.newArrayList();
      result.addAll(Arrays.asList(dataDetails()));
      result.addAll(Arrays.asList(dataDetails2()));
      return result.toArray(new Object[result.size()][]);
    }



@Test(dataProvider="enterformDetails")  
public  void employDetails(String FName,String LastName,String Comp,String Email){
    EmpDetails emp=new EmpDetails();
    emp.enterDetails(FName, LastName, Comp,Email);

  }

前もって感謝します..

4

2 に答える 2

0

必要なのは、これら 2 つのファイルを読み取り、両方のファイルの値を組み合わせたイテレータを返す Dataprovider だと思います。

 @DataProvider
    public CSVIterator1 genericDataProvider(){

    File input1 = new File("c:\\file1.csv");
    File input2 = new File("c:\\file2.csv");

    return new CSVIterator1(input1,input2);


}




@Test(dataProvider ="genericDataProvider")
public void test1(String s1 , String s2, String i1, String i2){



}

そして、必要に応じて Iterator インターフェイスを実装します。これは CSV イテレーターです。Excelイテレータを実装できます。あなたはちょうどアイデアを得る。

   public class CSVIterator1 implements Iterator{

String line1;
String line2;
BufferedReader rdr1;
BufferedReader rdr2;

CSVIterator1(File input1 ,File input2){

    try {
         rdr1 = new BufferedReader(new FileReader(input1));
         rdr2 =new BufferedReader(new FileReader(input2));
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }



}

@Override
public boolean hasNext() {

    try {
        if((line1 = rdr1.readLine()) != null && (line2 = rdr2.readLine()) != null){
            return true;
        }

        // TODO Auto-generated method stub

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return false;
}



@Override
public void remove() {
    // TODO Auto-generated method stub

}



@Override
public Object next() {

    if(line1 !=null && line2 !=null){

        return genParams(line1,line2);

    }

    // TODO Auto-generated method stub
    return null;
}



public Object[] genParams(String line1 , String line2){

    String combined = line1+","+line2;


    StringTokenizer st = new StringTokenizer(combined, ",");
    Object[] result = new Object[st.countTokens()];
    int i=0;
    while(st.hasMoreTokens()){

        result[i] = st.nextElement();
        i++;
    }

    return result;
}

}

于 2013-03-08T09:49:22.193 に答える
0

xlsファイルからマップを作成し、入力に応じてこのマップを使用して、マップキーを使用してデータを取得することをお勧めします。スイートを作成する前にマップを作成し、このマップをスクリプトの任意の場所で使用する場合にのみ、非常に役立ちます。これを行うと、スクリプトのどこにも @DataProvider を付ける必要はありません。

手順: xls 読み取りマップ値からマップを作成します。キー Pass をテストデータとしてテストケースに使用します。

于 2013-03-12T16:51:12.850 に答える