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

Фотография

Способы уменьшения времени работы тестов


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

#1 mr.alexmelnikov

mr.alexmelnikov

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

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Алексей
  • Город:Екатеринбург

Отправлено 16 сентября 2011 - 06:47

Думаю данный вопрос рано или поздно встает перед любым тестировщиком.
Предлагаю в данной теме поделиться опытом по уменьшению времени работы тестов. Кто как это делает?
Предпочтительно для связки Selenium RC + Java (Ant или Maven).
  • 0

#2 Skuayer

Skuayer

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

  • Members
  • PipPip
  • 115 сообщений
  • ФИО:Жуков Анатолий Викторович
  • Город:Санкт-Петербург

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

запускать тесты параллельно? =)
вобще была довольно интересная вдяшка с одной конференции на эту тему.
  • 0

#3 mr.alexmelnikov

mr.alexmelnikov

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

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Алексей
  • Город:Екатеринбург

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

запускать тесты параллельно? =)
вобще была довольно интересная вдяшка с одной конференции на эту тему.


Киньте ссылку пожалуйста, если найдете.
Запускать тесты параллельно - это понятно. Принимается....

Но может можно еще как-то за счет проектирования архитектуры или грамотного рефакторинга увеличить скорость?
  • 0

#4 Skuayer

Skuayer

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

  • Members
  • PipPip
  • 115 сообщений
  • ФИО:Жуков Анатолий Викторович
  • Город:Санкт-Петербург

Отправлено 16 сентября 2011 - 08:21


запускать тесты параллельно? =)
вобще была довольно интересная вдяшка с одной конференции на эту тему.


Киньте ссылку пожалуйста, если найдете.
Запускать тесты параллельно - это понятно. Принимается....

Но может можно еще как-то за счет проектирования архитектуры или грамотного рефакторинга увеличить скорость?


лови http://software-test...5-selenium-fast

по поводу поектирования тоже много всего есть, к примеру поизучайте материалы с seleniumcamp.com - я для себя оттуда много чего подчеркнул интересного.
  • 0

#5 stmark

stmark

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

  • Members
  • PipPipPipPip
  • 404 сообщений
  • ФИО:Докучаев Сергей
  • Город:Ярославль


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

Что работало в моём случае:
1. Использование WaitFor вместо Thread.Sleep. Это во всех мануалах расписано.
2. Использование Selenium 2.0 (WebDriver) + HtmlUnit, один тест так и вовсе с полутора минут скатился до 25 секунд, так и не понял до конца за счет чего это произошло.
3. Параллельный запуск тестов. Делал через Grid, работало ессно веселее, но из-за множества глюков, отказались в тот раз. Стоит попробовать ещё раз, и если не с гридом, то можно другой вариант подыскать.
4. Оптимизация времени загрузки браузера. Для каждого браузера она своя. Отключаем всё, что не повлияет на само отображение страниц и их функционирование. Здорово помогло.
5. Разграузка сервера, на котором гоняются тесты. Как ни банально, но длительное время прогонки каждого теста у нас было связано с тем, что ещё и сам проект билдался на том же сервере. Сюда же можно включить и простая оптимизация ОС и увеличение мощностей машинки. Хотя не уверен, что это сильно скажется на скорости выполнения тестов.
6. Рефакторинг самих тестов ещё до их реализации в коде. Отбрасываем все ненужные действия. Это была моя личная проблема, в одном тесте я старался охватить как можно больше функционала, тестирование которого никому не было нужным или же просто всегда работало.
7. Прогонка всех тестов без множества стартов браузера. Помнится Алексей Баранцев подробно расписывал как это делается.

Главное в погоне за скоростью не забывать о реалистичности тестов. Они же должны эмулировать действия пользователя.
  • 1

#6 Wolonter

Wolonter

    Постоянный участник

  • Members
  • PipPipPip
  • 205 сообщений
  • ФИО:Макс
  • Город:Екатеринбург


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

Что делает программист, когда нужно вскипятить воду?
Наливает воду в чайник, нажимает на кнопку, ждет...

А если в чайнике есть вода?
Выливает воду, далее см. первый сценарий.

Это к тому, что методы, используемые для подготовки тестовой системы должны быть вдумчиво проверены. Время у селениумтестов тратится по большей части на ожидание загрузки страницы - значит нужно меньше кликов.

Пример - мы писали тест добавления чвототам:
Залогиниться, зайти в настройки - <масса переходов> - зайти в список чвототамов системы - нажать добавить - бла-бла-бла - проверить.

Для теста это правильно. А для подготовки тестовой системы нам будет достаточно сразу перейти в список чвототамов и не совершать лишние переходы.

P.S. Помнится, нам об этом Баранцев рассказывал, когда в 2010 в ебург приезжал.
  • 0


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

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