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

Post on 26-Jun-2015

1.132 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

или

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

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

emails: levsha@yandex-team.rulev932@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

Михаил Левин

top related