Способы уменьшения времени работы тестов
#1
Отправлено 16 сентября 2011 - 06:47
Предлагаю в данной теме поделиться опытом по уменьшению времени работы тестов. Кто как это делает?
Предпочтительно для связки Selenium RC + Java (Ant или Maven).
#2
Отправлено 16 сентября 2011 - 07:22
вобще была довольно интересная вдяшка с одной конференции на эту тему.
#3
Отправлено 16 сентября 2011 - 07:26
запускать тесты параллельно? =)
вобще была довольно интересная вдяшка с одной конференции на эту тему.
Киньте ссылку пожалуйста, если найдете.
Запускать тесты параллельно - это понятно. Принимается....
Но может можно еще как-то за счет проектирования архитектуры или грамотного рефакторинга увеличить скорость?
#4
Отправлено 16 сентября 2011 - 08:21
запускать тесты параллельно? =)
вобще была довольно интересная вдяшка с одной конференции на эту тему.
Киньте ссылку пожалуйста, если найдете.
Запускать тесты параллельно - это понятно. Принимается....
Но может можно еще как-то за счет проектирования архитектуры или грамотного рефакторинга увеличить скорость?
лови http://software-test...5-selenium-fast
по поводу поектирования тоже много всего есть, к примеру поизучайте материалы с seleniumcamp.com - я для себя оттуда много чего подчеркнул интересного.
#5
Отправлено 16 сентября 2011 - 08:22
1. Использование WaitFor вместо Thread.Sleep. Это во всех мануалах расписано.
2. Использование Selenium 2.0 (WebDriver) + HtmlUnit, один тест так и вовсе с полутора минут скатился до 25 секунд, так и не понял до конца за счет чего это произошло.
3. Параллельный запуск тестов. Делал через Grid, работало ессно веселее, но из-за множества глюков, отказались в тот раз. Стоит попробовать ещё раз, и если не с гридом, то можно другой вариант подыскать.
4. Оптимизация времени загрузки браузера. Для каждого браузера она своя. Отключаем всё, что не повлияет на само отображение страниц и их функционирование. Здорово помогло.
5. Разграузка сервера, на котором гоняются тесты. Как ни банально, но длительное время прогонки каждого теста у нас было связано с тем, что ещё и сам проект билдался на том же сервере. Сюда же можно включить и простая оптимизация ОС и увеличение мощностей машинки. Хотя не уверен, что это сильно скажется на скорости выполнения тестов.
6. Рефакторинг самих тестов ещё до их реализации в коде. Отбрасываем все ненужные действия. Это была моя личная проблема, в одном тесте я старался охватить как можно больше функционала, тестирование которого никому не было нужным или же просто всегда работало.
7. Прогонка всех тестов без множества стартов браузера. Помнится Алексей Баранцев подробно расписывал как это делается.
Главное в погоне за скоростью не забывать о реалистичности тестов. Они же должны эмулировать действия пользователя.
#6
Отправлено 16 сентября 2011 - 09:22
Наливает воду в чайник, нажимает на кнопку, ждет...
А если в чайнике есть вода?
Выливает воду, далее см. первый сценарий.
Это к тому, что методы, используемые для подготовки тестовой системы должны быть вдумчиво проверены. Время у селениумтестов тратится по большей части на ожидание загрузки страницы - значит нужно меньше кликов.
Пример - мы писали тест добавления чвототам:
Залогиниться, зайти в настройки - <масса переходов> - зайти в список чвототамов системы - нажать добавить - бла-бла-бла - проверить.
Для теста это правильно. А для подготовки тестовой системы нам будет достаточно сразу перейти в список чвототамов и не совершать лишние переходы.
P.S. Помнится, нам об этом Баранцев рассказывал, когда в 2010 в ебург приезжал.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных

