Эволюция тестирования на Selenium
Мычко Алексей JazzTeam
Что будет рассмотрено
1. Стратегия выбора способа для создания автотестов для web-приложений с помощью Selenium
2. Особенности различных способов3. Как изменяются тесты при
различных методах их создания4. Все на примерах!
Способы создания автотестов
Будут рассмотрены 4-ре вида автотестов:
• Автосгенерированные• Написанные в процедурном стиле• Написанные в стиле ООП• Написанные с помощью
дополнительных фреймворков
Требования к тестам
Существование различных способов создания тестов обусловлено:
• Временем на их создание• Планируемым временем
поддержки• Навыками людей• Сложность тестируемой системы• Необходимые проверки
Тест-кейсы
Test-case 1:1. Log In as user1 (user1/pas1)2. Check that active user is User1 3. Logout
Test-case 2:1. Log In as user2 (user2/pas2)2. Check that active user is User23. Click to Settings4. Logout
Тест-кейсы
1. Общие части, но с разными параметрами (login as user 1/2)
2. Действия до каждого теста и после (login/logout)
3. Одинаковые действия, встречающиеся в разных тестах (login/logout)
4. Действия, которые есть только в одном тесте (Click Jenkins settings)
Автосгенерированные тесты
Средство:Selenium IDE – плагин для FireFox
Применение: • Небольшие проекты• Тесты нужны очень быстро для
кратко-срочных целей• Слабый уровень квалицикации QA
Selenium IDE
• Достоинства– Тесты быстро создаются–Легко обучить персонал
• Недостатки – Сложность поддержки–Невозможно организовать некоторые
виды проверок
Тесты в процедурном стиле
Средство:Selenium Web Driver – библиотека для
различных языков программирования
Применение: • Большие проекты• Если в тестах нужны
специфические проверки
Тесты на Java
WebDriver tests
• Достоинства– Позволяют использовать все возможности
выбранного языка программирования– При правильном написании – достаточно
расширяемы
• Недостатки – Есть проблемы при долгосрочном
использовании– Медленное внедрение тестов– Требуют определенных навыков
программирования у QA
Тесты в стиле ООП
Средство:Selenium Web Driver – библиотека для
различных языков программированияПаттерн: Page Object – отделение логики теста от
способа обращения к тестируемому сайтуПрименение: • Большие и долгосрочные проекты• Если в тестах нужна очень большая
гибкость
Суть Page Object
• Упор на архитектуру тестов• Описание тестов в стиле ООП• Создается ООП модель всей
тестируемой системы• Эта модель не является тестом!• Она является интерфейсом для
будущих тестов, через который тесты получают доступ к системе
Модель системы
• Описывается каждая страница, к которой тестам нужно обратится
• В странице только те действия, которые можно на ней выполнить
• Если есть переход на другую страницу – то в модели тоже происходит переход на другой объект
• Другой объект может выполнять только те действия, которые есть на реальной странице
Тесты с моделью
• В тестах используется только модель• Тот кто пишет тест не видит
подробности работы WebDriver, для этого человека из модели доступны только те действия, которые можно выполнять на одноименной странице
• Остальные принципы построения тестов такие как и в предыдущем методе
Page Object
Page Object
Page Object
Page Object tests
• Достоинства–Максимальная гибкость тестов– Все преимущества предыдущего
подхода– Эффективная поддержка тестов в
долгосрочной перспективе
• Недостатки – Очень медленное внедрение тестов– Требуют высокий уровень знания
программирования у QA
Тесты с использованием фреймворков
Для ускорения процесса создания тестов можно пользоваться различными средствами.
Одним из таких средств является фреймворк xml2selenium.
Это средство для создания тестов через описание их логики в XML файлах.
Xml2Selenium
Предпосылки для создания фреймворка:- вопросы тестирования нескольких
версий одного и того же продукта- повторно-используемость наработок в
тестах, в том числе, и с разных проектов
- возможность быстро изменять данные в тестах
- возможность быстро поменять значения, или даже логику теста
Xml2Selenium
Пример теста:
Xml2Selenium
Пример репорта:
Xml2Selenium возможности
- Плагинность, полная расширяемость- Простое API- Сохранение скриншотов и видео теста- Интеграция с Junit, но независимость от
него. Возможность создавать свои раннеры
- Удобные репорты для бизнес-пользователей
- Поддержка if/for- Возможность самотестирования
Xml2Selenium особенности
- Не нужны знания программирования
- Возможность использования лучших возможностей программирования: объединение общих фрагментов, использование переменных и файлов
- Возможность data driven testing- Возможность нагрузочного
тестирования
Xml2Selenium
• Включает в себя достоинства 1-го и 2-го метода написания тестов:–Не нужно много времени чтобы
начать писать тесты– Тесты создаются быстро– Есть возможность с помощью
плагинов реализовать любую необходимую проверку
– Тесты легко поддерживаемы и расширяемы
Xml2Selenium
• Включает в себя достоинства 1-го и 2-го метода написания тестов:–Не нужно много времени чтобы
начать писать тесты– Тесты создаются быстро– Есть возможность с помощью
плагинов реализовать любую необходимую проверку
– Тесты легко поддерживаемы и расширяемы
Спасибо за вниманиеОтвечу на любые ваши вопросы.
Также помогу более детально познакомится с проектом
Xml2Selenium
Мычко АлексейJazzTeam