Selenium RC и Python: История одного проекта презентация

Содержание

Содержание Введение Selenium IDE Использование mapping-файла PageObject model Modified PageObject model Введение в py.test Заключение

Слайд 1
Константин Прищенко
Selenium RC и Python:
История одного проекта


Слайд 2Содержание
Введение
Selenium IDE
Использование mapping-файла
PageObject model
Modified PageObject model
Введение в py.test
Заключение


Слайд 3Введение


Слайд 4Введение
Server:
OS Ubuntu Linux
Workstation:
OS Windows XP/7
Workstation:
Mac OS X



Слайд 5Selenium IDE


Слайд 6Selenium IDE


Слайд 7Selenium IDE


Слайд 8Selenium IDE

Преимущества:
Простота написания тестов с использованием такого метода

Недостатки:
Очень много

повторяющегося кода.
Локаторы объектов хранятся в тесте.


Слайд 9Внешний файл для хранения локаторов


Слайд 10Использование mapping-файла
Для обеспечения лучшего контроля вынесем объявление всех локаторов в отдельное

хранилище.

Это может быть xml-файл:

Слайд 11Использование mapping-файла
Это может быть cfg/ini-файл:





Был выбран для использования cfg-файл из-за простоты

реализации и поддержки.


Слайд 12Использование mapping-файла


Пример кода для работы с cfg-файлом:








В итоге мы получаем возможность

получать локатор:

Слайд 13Использование mapping-файла



Слайд 14Использование mapping-файла




Преимущества данного подхода:

Если локатор меняется – его необходимо обновить

только в одном месте;
Повышается читабельность кода – имена локаторов позволяют понять логику теста;



Слайд 15Использование Page Object модели


Слайд 16









PageObject модель




Модель сайта:


MainPage
Sign in

Open ent.page
EntertainmentPage
Open music view
MusicPage
Sort by
Music style
Show only


Слайд 17PageObject модель


Для данной модели необходимо использовать mapping-файл с отдельной секцией для

каждой страницы.


Слайд 18PageObject модель


Пример класса для базовой страницы:

Создание объекта:


Слайд 19PageObject модель


Пример класса для базовой страницы:
Нажатие на кнопку/ссылку:


Слайд 20PageObject модель


Пример класса для страницы:


Слайд 21PageObject модель



Слайд 22PageObject модель



Данный подход позволяет:

Улучшить структуру тестов;
Уменьшить повторяемость кода;
Увеличить

читабельность кода;
Упрощается поддержка тестов в случае изменения тестируемого приложения.


Слайд 23Использование модифицированной Page Object модели


Слайд 24Modified PageObject модель





Модель сайта:


Page model
Is text on page
Reload
Close
Link model
Click
Double click
TextField model
Set

text

Get text

Verify text

Page model

Is text on page

Reload

Close

Link model

Click

Double click

TextField model

Set text

Get text

Verify text


Слайд 25Modified PageObject модель



Выделим следующий элемент в логической структуре PageObject модели —

объект элемента страницы, что обеспечит:

Улучшенную структуру объектов страниц;
Уменьшит повторяемость кода;
Уменьшит время на ознакомление с общей моделью.


Слайд 26Modified PageObject модель


Данный подход позволит поместить необходимые проверки во внутрь методов

элементов:

Слайд 27Modified PageObject модель


Данный подход не изменяет внешнего вида теста.


Слайд 28Modified PageObject модель




С помощью данного подхода упрощается работа с о специфическими

элементами различных библиотек.

Например JSON ComboBox-элемент: поле для ввода, кнопка и div-секции со всеми возможными элементами.



Слайд 29Modified PageObject модель



Слайд 30Введение в py.test


Слайд 31Введение в py.test




Система разработана Holger Krekel-ом.
Инсталляция:

easy_install pytest
pip install pytest

Запуск

через командную строку:
py.test


Слайд 32Введение в py.test



Стандартные операции ввода/вывода показываются только в случае ошибки

Автоматическое распознование

тестов:
ищутся все файлы test_*.py
внутри файлов ищутся все функции test_* и все Test классы.


Слайд 33Введение в py.test


Для верификации значений в тесте используется assert:


Слайд 34Введение в py.test



Можно пропустить тест:


Можно пропустить тест при условии:


Можно пометить тест

как негативный:


Можно пометить тест своей собственной меткой:

Слайд 35Введение в py.test



Слайд 36Заключение


Слайд 37Заключение



Слайд 38Заключение



По-моему мнению, связка Selenium RC + py.test с использованием PageObject модели

для автоматического тестирования является наиболее оптимальной.

Построенный фреймворк позволил использовать тесты для:
проверки новой версии приложения (BVT);
полной проверки приложения (full regression);
выборочной проверки выбранных модулей;
организации помощи ручному тестированию.


Слайд 39Спасибо за внимание!

Copyright © 2011 SoftServe, Inc.
Контакты
Прищенко Константин

kprish@softserveinc.com


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика