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

Фотография

Распараллеливание тестов(Selenium+PHPUnit)


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

#1 selekhovan

selekhovan

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Артём

Отправлено 04 октября 2011 - 12:12

Cейчас возникла проблема, что набор тестов, написанных на selenium rc, проводится очень долго на системe Continuous Integration Cruisecontrol(Тестов стало много). Тесты запускаются последовательно в одном окне браузера в порядке указанном в phpunit.xml в прокте. Это не хорошо так как теряется смысл предназначения регрессионных тестов(прогон после каждого комита).
Не мог бы кто-нибудь рассказать про то как лучше распараллелить запуск тестов, У меня используется PHPUnit, Selenium rc,Grid.Selenium сервер используется старый. Кто как решил для себя данную задачу?
Заранее спасибо!
  • 0

#2 Demon_ex

Demon_ex

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Диметрий

Отправлено 05 октября 2011 - 14:24

Очень интересно.
А как ты собираешься прогнать скажем 10к тестов при каждом комите, даже если у тебя есть ферма машин. Дело в том, что в твоём случае лучше всего разбить тестирование на регрессионное и приёмочное. Согласно бест практис - прогон приёмочных тестов не должен быть занимать более 3-х часов (в зависимости, конечно, от приложения). А регрессия - один раз в билд. Бывали случаи когда регрессия проходила за 7 дней беспрерывного прогона на 10ти (!!!) машинах.

Конечно же все зависит от модели разработки ПО которая укоренилась в вашем проекте но все же иметь разделение регрессия\приемочные все же надо. Прогоняйте приемочные после каждого комита и регрессию раз в билд и все будет гуууут. :good:

Успехов!!
  • 0

#3 ch_ip

ch_ip

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


Отправлено 06 октября 2011 - 05:59

Конечно же все зависит от модели разработки ПО которая укоренилась в вашем проекте но все же иметь разделение регрессия\приемочные все же надо. Прогоняйте приемочные после каждого комита и регрессию раз в билд и все будет гуууут. :good:

А вы часом не путаете коммиты, билды и релизы?
Обычно, чтобы прогнать UI-тесты после коммита, надо собрать билд и задеплоить его на тестовый сервер. Таким образом, тесты всегда прогоняются на конкретном билде (который может собираться после каждого коммита / раз в день / по еще каким-нибудь правилам). Гонять регрессию на каждом билде или нет очень сильно зависит от тестов, проекта, уровня автоматизации. Может там уже все заавтоматизировано для того, чтобы использовать практику чертова колеса, а может для проекта оно и вообще не нужно.
  • 0

#4 ch_ip

ch_ip

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


Отправлено 06 октября 2011 - 06:00

Cейчас возникла проблема, что набор тестов, написанных на selenium rc, проводится очень долго на системe Continuous Integration Cruisecontrol(Тестов стало много). Тесты запускаются последовательно в одном окне браузера в порядке указанном в phpunit.xml в прокте. Это не хорошо так как теряется смысл предназначения регрессионных тестов(прогон после каждого комита).
Не мог бы кто-нибудь рассказать про то как лучше распараллелить запуск тестов, У меня используется PHPUnit, Selenium rc,Grid.Selenium сервер используется старый. Кто как решил для себя данную задачу?
Заранее спасибо!

На каком/каких браузерах вам нужно тестировать? Если сейчас все в одном потоке, то для чего используется Grid?
  • 0

#5 selekhovan

selekhovan

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Артём

Отправлено 07 ноября 2011 - 12:26

Разработка идет на PHP, используются практики Agile и практически каждый комит можно назвать билдом.
Demon_ex у вас есть 10к тестов?)
Проверка идет (к примеру) только в одном браузере. Да Grid настроен и может раскидывать на разные машины с разными браузерами, но он всеравно делает это по-порядку, согласно файлу phpunit.PHPUNIT не может распараллеливать тесты если я всё правильно понимаю.
  • 0

#6 Ice_man

Ice_man

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

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

Отправлено 22 ноября 2011 - 14:00

После каждого коммита можно, разве что, юнит тесты прогонять а не функциональные на селениуме...имхо
  • 0

#7 OVA

OVA

    Опытный участник

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 22 ноября 2011 - 16:28

После каждого коммита можно все, если нужно.

На почитать по теме:
http://codeascraft.e...ide-and-concur/

Линки на их перепилы того же PHPUnit на гитхабе инклюдед. Если что, им можно писать и они охотно отвечают на вопросы.
  • 0


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

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