将输入从Excel传递到测试类

时间:2015-10-08 18:33:20

标签: excel testing automated-tests testng

我在单个班级中有多个测试用例。 Test Excel有三个不同的工作表/选项卡1,2和3.我的测试类中有三个测试用例。

我研究了数据提供者注释;我理解的是它会对传递的整个对象执行相同的测试用例。在我的情况下,它将首先测试测试用例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把它放在object [] []中。为每个测试用例创建数据提供程序,让它们在for循环中运行。例如:

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

这是有效的方法还是它违背了TestNG的目的?

2 个答案:

答案 0 :(得分:0)

这种方法称为Data-driven testing。您的特定情况是DB部分的一种

  
      
  • 数据池
  •   
  • ODBC来源
  •   
  • CSV文件
  •   
  • Excel文件
  •   
  • DAO对象
  •   
  • ADO对象
  •   
恕我直言TestNG功能 - 参数测试,使用相同的方法。它允许您使用不同的值反复运行相同的测试。

我不是静态测试数据的忠实粉丝(请参阅Pesticide paradox),我建议您每次运行生成Excel文件(作为Fresh Fixture)或者您通过了动态生成测试数据到您的测试。

答案 1 :(得分:0)

DataProvider也将Method作为参数。

您可以根据testmethod调用返回对象。

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