codefest 2011. Левин М. — Фреймворк для автоматизации...
TRANSCRIPT
Framework для автоматизации тестирования и функционального мониторинга в Яндексе
или
Автостопом по Акве
Михаил Левин, Яндекс• Руководитель группы тестирования
emails: [email protected]@yandex.ru
AQuA
50*
* Серверов в последней версии AQuA
50 000*
Давайте померяемся
* Тестовых классов в день
Почему?
Рост команды
Рост числа тестов
Частота запуска тестов
Потребность в единообразии
Требования к надежности системы
Требования к функционалу системы
История!
Ppsha
+ Monitoring
Alpha
Beta
… Bonus!
Katiusha
Gamma
Ppsha
+ Monitoring
Alpha
BetaKatiusha
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
BetaKatiusha
Gamma
Katiusha
Две машины
Katiusha
Monitoring
Куча тестов
Monitoring
*
* Оценка сверху
Солдат спит, робот идет
Monitoring
Cron
Надо ли запускать тесты в продакшене??!!?
Monitoring
Функциональный мониторинг
Убеждаться что жив функционал,а не сервера
Ловить плавающие ошибки
Monitoring
Быстро уведомлять, но когда точно сломалось!
SMS или Email
Выставлять веса ошибкам
Уведомлять после нескольких поломок подряд
Monitoring
Ppsha
+ Monitoring
Alpha
BetaKatiusha
Gamma
ИнтерфейсРепорты
Дерево тестовXML
Java агент
SeleniumsFirefox 2.0
Cron
PPSHA и KatiushaAlpha
SeleniumsFirefox
IE
Дерево тестовMySQL
Альфа архитектуры
Надо ли запускать «версточные» тесты кроссбраузерно?
Alpha
Ppsha
+ Monitoring
Alpha
BetaKatiusha
Gamma
СтруктураТестов
Очередьтестов
Интерфейс Cron
Репорты
MySQL
Beta
JAR
JAR
JAR
/opt
2
2
15
10
Структуратестов
Очередьтестов
Интерфейс Cron
Репорты
MySQL
Beta
Структуратестов
Очередьтестов
Интерфейс Cron
Репорты
MySQL
КластерМониторинга
КластерТестирования
Ppsha
+ Monitoring
Alpha
BetaKatiusha
Gamma
СтруктураТестов
Очередьтестов
Интерфейс Cron
Репорты
MySQL
Gamma
/optЧто будем улучшать?
GammaХотим побеждать
Очередь
Старый селениум 1.03
Файловое хранилище
Bonus!
А зачем нам
selenium???
У селениума своя область применения
GUITests
Acceptance Tests(API Layer)
Unit Tests / Component Tests
Manualtests
HTTP requests
Михаил Левин