Перейти к содержимому

Аудит и оптимизация QA-процессов
онлайн, начало 24 декабря
Автоматизация функционального тестирования
онлайн, начало 27 ноября
Логи как инструмент тестировщика
онлайн, начало 30 ноября
Тестирование REST API
онлайн, начало 30 ноября
Фотография

Распараллеливание тестов на TestNG

testng

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Ilana

Ilana

    Активный участник

  • Members
  • PipPip
  • 82 сообщений
  • ФИО:Илана
  • Город:Иерусалим


Отправлено 10 декабря 2015 - 17:05

Здравствуйте!
 
Несколько месяцев назад я начала новый проект автомации на основе архетипа (Алексея Баранцева) используя TestNG. Проект очень вырос и потребовалось запускать его хотя бы в трех threads.
 
Сразу началась путаница в логах и скриншотах между тестами. Вначале проблема была в использовании static (особенно в log4j) и я вытерла почти все упоминания static в проекте :-) Это сразу же помогло, но когда количество тестов опять выросло, проблема вернулась. Логи работают хорошо, но скриншоты путаются и тесты падают в непонятный местах (там где при непараллельном пробеге они отлично проходят)...
 
В stackoverflow есть похожий пост http://stackoverflow...-mixed-the-driv
 
И там проблема решилась после двух шагов. Первый - снятие скриншотов делать в @AfterMethod. Второй - убрать все @After и @Before из супер класса тестов - в сами тесты:
 
1) eliminate the listener, and take all screenshots in the @AfterMethod. 2) Move the @Before/After Method/Test methods into the child classes, but simply call methods in the parent to do all the work. Another thing I noticed is that for #2, TestNG is supposed to run the parent '@Before' methods then the child '@Before' methods; and then at the end run the child '@After' methods and then the parent '@After' methods. I ran a series of simple tests, I found that all before/after methods were not being run, so for the few cases where I was using @Before and @After methods in both parent and child, I consolidated. Things seem to run much better now, the driver does not get confused, and screenshots are being attached to the correct browser/test.
 
Мне очень не хотелось бы это делать. Для первого шага надо изучить testNG rules, чтобы знать когда тест упал. (Сейчас тест сам зовет функцию скриншотов из super-class когда падает). Второй шаг еще хуже - функция супера @BeforeClass, которая инициализирует WebDriver, хелперы и остальное - ее размножать для каждого теста (!) - по-моему не стоит.
 
Намного легче перевести проект в JUnit где таких проблем нет (наш второй проект бежит с JUnit на 26 threads не делая никакой путаницы).
 
Может кто-то сталкивался с подобной проблемой? Любые советы приветствуются!
 
Спасибо!

  • 0

#2 asolntsev

asolntsev

    Новый участник

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Андрей Солнцев
  • Город:Таллинн

Отправлено 11 декабря 2015 - 07:00

Тут проблема наверняка не в TestNG или JUnit, а в том, что именно написано в этих ваших @Before методах. Там код потоконебезопасный.

Но самое надёжное - параллелить тесты с помощью опции "fork", тогда тесты будут запускаться в разных процессах, а не потоках, и никаких проблем со статиками не будет.
  • 0

#3 Ilana

Ilana

    Активный участник

  • Members
  • PipPip
  • 82 сообщений
  • ФИО:Илана
  • Город:Иерусалим


Отправлено 13 декабря 2015 - 05:48

Большое спасибо! Сейчас попробую.


  • 0

#4 feeod

feeod

    Новый участник

  • Members
  • Pip
  • 1 сообщений

Отправлено 29 октября 2017 - 09:51

Тут проблема наверняка не в TestNG или JUnit, а в том, что именно написано в этих ваших @Before методах. Там код потоконебезопасный.

Но самое надёжное - параллелить тесты с помощью опции "fork", тогда тесты будут запускаться в разных процессах, а не потоках, и никаких проблем со статиками не будет.

Добрый день. Подскажите, пожалуйста, где это описано более подробно.


  • 0


Программирование на С# для тестировщиков
онлайн
Автоматизатор мобильных приложений
онлайн
Selenium WebDriver: полное руководство
онлайн
Программирование на Python для тестировщиков
онлайн




Темы с аналогичным тегами testng

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале