Framework для автоматизации тестирования и функционального мониторинга в Яндексе или Автостопом по Акве
Михаил Левин, Яндекс Руководитель группы тестирования s:
AQuA
50 * * Серверов в последней версии AQuA
* Давайте померяемся * Тестовых классов в день
Почему? Рост команды Рост числа тестов Частота запуска тестов Потребность в единообразии Требования к надежности системы Требования к функционалу системы
История!
Ppsha + Monitoring Alpha Beta … Bonus! Katiusha Gamma
Ppsha + Monitoring Alpha Beta Katiusha Gamma
Ppsha Начало Ручное тестирование Тесты на Perl Selenium RC 0.9b
Доставка и хранилище Заливаем код в SVN Собираем все тесты в один JAR Парсим структуру тестов в XML Ppsha
Создаем профили Задаем частоту запуска Задаем получателей Просматриваем отчеты Ppsha Интерфейсы
Исполнение тестов Ручной запуск, HTTP, Cron 20 selenium servers v0.9b Firefox 2.0 Подготовка HTML отчета Ppsha
Единообразная обработка ошибок и генерация отчетов Сервисы Запуск селениума Различные виды запуска тестов Снятие скриншотов Сохранение html Прозрачная работа с параметрами для тестов
Ppsha + Monitoring Alpha Beta Katiusha Gamma
Katiusha Две машины
Katiusha Monitoring
Куча тестов Monitoring * * Оценка сверху
Солдат спит, робот идет Monitoring
Надо ли запускать тесты в продакшене??!!? Monitoring
Функциональный мониторинг Убеждаться что жив функционал, а не сервера Ловить плавающие ошибки Monitoring
Быстро уведомлять, но когда точно сломалось! SMS или Выставлять веса ошибкам Уведомлять после нескольких поломок подряд Monitoring
Ppsha + Monitoring Alpha Beta Katiusha Gamma
Интерфейс Репорты Дерево тестов XML Java агент Seleniums Firefox 2.0 Cron PPSHA и Katiusha Alpha SeleniumsFirefoxIE Дерево тестов MySQL Альфа архитектуры
Надо ли запускать «версточные» тесты кроссбраузерно? Alpha
Ppsha + Monitoring Alpha Beta Katiusha Gamma
Структура Тестов Очередь тестов Интерфейс Cron Репорты MySQL Beta JAR JAR JAR /opt
Структура тестов Очередь тестов Интерфейс Cron Репорты MySQL Beta Структура тестов Очередь тестов Интерфейс Cron Репорты MySQL Кластер Мониторинга Кластер Тестирования
Ppsha + Monitoring Alpha Beta Katiusha Gamma
Структура Тестов Очередь тестов Интерфейс Cron Репорты MySQL Gamma /opt Что будем улучшать?
Gamma Хотим побеждать Очередь Старый селениум 1.03 Файловое хранилище
Bonus!
А зачем нам selenium ???
У селениума своя область применения GUI Tests Acceptance Tests (API Layer) Unit Tests / Component Tests Manual tests
HTTP requests
Михаил Левин