2015-10-08 27 views
0

我在單個類中有多個測試用例。測試Excel有三個不同的工作表/標籤1,2和3.在我的測試類中有三個測試用例。從Excel傳遞輸入到測試類

我查看了數據提供者註釋;我所理解的是它會爲傳遞的整個對象執行相同的測試用例。在我的情況下,它將首先測試測試用例1對於來自標籤1的所有行,測試用例2對於來自標籤2的所有行等等。

我所尋找的是如下:

for i number of rows in excel 
    Execute test 1 with row i from tab 1 
    Execute test 2 with row i from tab 2 
    Execute test 3 with row i from tab 3 
    (Form i complete, proceed to second form data) 

我能做的是看完整的Excel把它放在對象[] []。爲每個測試用例創建數據提供者並讓它們在for循環中運行。例如:

CLASS 
    { 
    for loop 
     { 
      data provider 1, 2, 3; 
      @Test 
      function testcase1() 
      @Test 
      function testcase2() 
      @Test 
      function testcase3() 
     } 
    } 

它是有效的方法還是它打敗了TestNG的目的?

回答

0

該方法被稱爲Data-driven testing。您的具體情況是一種類型的DB部分

  • 數據池
  • ODBC數據源
  • CSV文件
  • Excel文件
  • DAO對象
  • ADO對象

恕我直言,TestNG功能 - 參數測試,正在使用相同的方法。它允許您使用不同的值一遍又一遍地運行相同的測試。我的建議是每次運行生成Excel文件(作爲Fresh Fixture),或者將動態生成的測試數據傳遞給測試。我不建議您使用靜態測試數據(請參閱Pesticide paradox)。

0

DataProvider也將Method作爲參數。

您可以基於testmethod調用返回對象。

i.e. if testmethod.name = testcase1 - read tab 1 - create object and return 
...and so on