codefest 2011. Левин М. — Фреймворк для автоматизации...

41
Framework для автоматизации тестирования и функционального мониторинга в Яндексе или Автостопом по Акве

Upload: codefest

Post on 26-Jun-2015

1.117 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Framework для автоматизации тестирования и функционального мониторинга в Яндексе

или

Автостопом по Акве

Page 2: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Михаил Левин, Яндекс• Руководитель группы тестирования

emails: [email protected]@yandex.ru

Page 3: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

AQuA

Page 4: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

50*

* Серверов в последней версии AQuA

Page 5: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

50 000*

Давайте померяемся

* Тестовых классов в день

Page 6: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе
Page 7: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Почему?

Рост команды

Рост числа тестов

Частота запуска тестов

Потребность в единообразии

Требования к надежности системы

Требования к функционалу системы

Page 8: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе
Page 9: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

История!

Page 10: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Ppsha

+ Monitoring

Alpha

Beta

… Bonus!

Katiusha

Gamma

Page 11: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Ppsha

+ Monitoring

Alpha

BetaKatiusha

Gamma

Page 12: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Ppsha

Начало

• Ручное тестирование

• Тесты на Perl

• Selenium RC 0.9b

Page 13: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Доставка и хранилище

• Заливаем код в SVN

• Собираем все тесты в один JAR

• Парсим структуру тестов в XML

Ppsha

Page 14: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

• Создаем профили

• Задаем частоту запуска

• Задаем получателей

• Просматриваем отчеты

Ppsha

Интерфейсы

Page 15: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе
Page 16: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Исполнение тестов

• Ручной запуск, HTTP, Cron

• 20 selenium servers v0.9b

• Firefox 2.0

• Подготовка HTML отчета

Ppsha

Page 17: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Единообразная обработка ошибок и генерация отчетов

Сервисы

Запуск селениума Различные

виды запуска тестов

Снятие скриншотовСохранениеhtml

Прозрачная работа с параметрами для тестов

Page 18: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Ppsha

+ Monitoring

Alpha

BetaKatiusha

Gamma

Page 19: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Katiusha

Две машины

Page 20: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Katiusha

Monitoring

Page 21: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Куча тестов

Monitoring

*

* Оценка сверху

Page 22: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе
Page 23: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Солдат спит, робот идет

Monitoring

Cron

Page 24: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Надо ли запускать тесты в продакшене??!!?

Monitoring

Page 25: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Функциональный мониторинг

Убеждаться что жив функционал,а не сервера

Ловить плавающие ошибки

Monitoring

Page 26: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Быстро уведомлять, но когда точно сломалось!

SMS или Email

Выставлять веса ошибкам

Уведомлять после нескольких поломок подряд

Monitoring

Page 27: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Ppsha

+ Monitoring

Alpha

BetaKatiusha

Gamma

Page 28: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

ИнтерфейсРепорты

Дерево тестовXML

Java агент

SeleniumsFirefox 2.0

Cron

PPSHA и KatiushaAlpha

SeleniumsFirefox

IE

Дерево тестовMySQL

Альфа архитектуры

Page 29: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Надо ли запускать «версточные» тесты кроссбраузерно?

Alpha

Page 30: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Ppsha

+ Monitoring

Alpha

BetaKatiusha

Gamma

Page 31: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

СтруктураТестов

Очередьтестов

Интерфейс Cron

Репорты

MySQL

Beta

JAR

JAR

JAR

/opt

2

2

15

10

Page 32: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Структуратестов

Очередьтестов

Интерфейс Cron

Репорты

MySQL

Beta

Структуратестов

Очередьтестов

Интерфейс Cron

Репорты

MySQL

КластерМониторинга

КластерТестирования

Page 33: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе
Page 34: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Ppsha

+ Monitoring

Alpha

BetaKatiusha

Gamma

Page 35: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

СтруктураТестов

Очередьтестов

Интерфейс Cron

Репорты

MySQL

Gamma

/optЧто будем улучшать?

Page 36: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

GammaХотим побеждать

Очередь

Старый селениум 1.03

Файловое хранилище

Page 37: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Bonus!

Page 38: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

А зачем нам

selenium???

Page 39: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

У селениума своя область применения

GUITests

Acceptance Tests(API Layer)

Unit Tests / Component Tests

Manualtests

Page 40: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

HTTP requests

Page 41: CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функционального мониторинга в Яндексе

Михаил Левин