0

複数の行を含む Excel を作成しました。各行はテスト ケースに対応しています。Excel には、「フラグ」列を含む約 22 の列 (パラメーター) があります。

データプロバイダーが、Excel 列に値「Y」を持つ列のみを返すようにします。ユースケースは、クライアントが特定のテストケースを実行したい場合に、Y または N にフラグを立てるだけでよいということです。Selenium を使用した TestNG でこれを達成するにはどうすればよいですか?

私の同僚は、次のコードを使用してこれを達成するのを手伝ってくれましたが、これは私の新しいコード構造では機能しません。

@DataProvider(name = "Order") 
     public Object[][] menu() 
     { 
         Object[][] data = UtilLibrary.getData("Order");
         int intColCount = UtilLibrary.datatable.getColumnCount("Order");

         int j = 0; 
         int arrRowCount=0; 
         for (int i = 0; i < data.length; i++) { 
             if((data[i][intColCount-1]).equals("Y"))
             { 
                 arrRowCount++; 

                 } 
             } 
                j=0;

                Object[][] retData = new Object[arrRowCount][intColCount]; 
                for (int i = 0; i < data.length; i++) 
                { 
                    if ((data[i][intColCount-1]).equals("Y")) {
                        retData[j] = data[i]; j++; }
                } 
                return retData; 
     }

上記のコードは、Excel で flag='Y' を持つレコードのみを Dataprovider に送信します。ただし、テストスクリプトにすべての自動化ステップを持つ単一の @Test メソッドがある場合にのみ機能していましたが、現在は、この同じ Dataprovider (Order) を渡した同じステップをシミュレートする複数の @Test メソッドがあります。

誰かが同様のコードを使用してこれを達成したか、または TestNG に Excel のフィルタリングされた行を Dataprovider に送信する特定の機能があるかどうか教えてください

4

1 に答える 1

0

私は今問題を修正しました。Excel でフラグ = 'Y' を持つ行の上記のコードが複数の @Test メソッドで機能しなかった理由は、愚かな間違いによるものでした。間違いは、Excel の構造を少し変更し、新しいフラグ列のインデックスに従って上記のコードを変更しなかったことです。

于 2016-01-12T15:11:01.790 に答える