2015-10-08 2 views
0

У меня есть несколько тестовых примеров в одном классе. Test 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. Ваш конкретный случай является типом части БД

  • пулы данных
  • источники ODBC
  • CSV файлы
  • Excel файлы объекты
  • DAO
  • ADO объекты

IMHO Функция TestNG - параметрическое тестирование, использует тот же подход. Это позволяет повторять один и тот же тест снова и снова с использованием разных значений.

Я не являюсь большим поклонником статических данных теста (см. Pesticide paradox). Могу ли я либо генерировать файлы Excel за один проход (как Fresh Fixture), либо передавать динамически сгенерированные тестовые данные в свои тесты.

0

DataProvider также принимает метод как аргумент.

Вы можете вернуть объекты, основанные на вызове testmethod.

i.e. if testmethod.name = testcase1 - read tab 1 - create object and return 
...and so on 
Смежные вопросы