Способы уменьшения времени работы тестов
Автор mr.alexmelnikov, 16 сен 2011 06:47
Сообщений в теме: 5
#1
Отправлено 16 сентября 2011 - 06:47
Думаю данный вопрос рано или поздно встает перед любым тестировщиком.
Предлагаю в данной теме поделиться опытом по уменьшению времени работы тестов. Кто как это делает?
Предпочтительно для связки Selenium RC + Java (Ant или Maven).
Предлагаю в данной теме поделиться опытом по уменьшению времени работы тестов. Кто как это делает?
Предпочтительно для связки 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. Прогонка всех тестов без множества стартов браузера. Помнится Алексей Баранцев подробно расписывал как это делается.
Главное в погоне за скоростью не забывать о реалистичности тестов. Они же должны эмулировать действия пользователя.
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 в ебург приезжал.
Наливает воду в чайник, нажимает на кнопку, ждет...
А если в чайнике есть вода?
Выливает воду, далее см. первый сценарий.
Это к тому, что методы, используемые для подготовки тестовой системы должны быть вдумчиво проверены. Время у селениумтестов тратится по большей части на ожидание загрузки страницы - значит нужно меньше кликов.
Пример - мы писали тест добавления чвототам:
Залогиниться, зайти в настройки - <масса переходов> - зайти в список чвототамов системы - нажать добавить - бла-бла-бла - проверить.
Для теста это правильно. А для подготовки тестовой системы нам будет достаточно сразу перейти в список чвототамов и не совершать лишние переходы.
P.S. Помнится, нам об этом Баранцев рассказывал, когда в 2010 в ебург приезжал.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных