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

Презентация:



Advertisements
Похожие презентации
Selenium: Начало.. Особенности WEB-приложений Множество браузеров, отличающиеся реализацией Отсутсвие строгих правил в HTML Различные конфигурации на.
Advertisements

Операционные системы. Выполнила студентка группы МОЦИ -306 Большешапова Елизавета.
cvb
Тема 5. Основы современной технологии программирования Программирование в средах современных информационных систем. Интегрированные системы разработки.
Операционная система компьютера Фетисова С.А.. –Операционная система обеспечивает совместное функционирование всех устройств компьютера и предоставляет.
Операционная система Windows. Windows – графическая операционная система для компьютеров платформы IBM PC Предназначена для управления автономным компьютером.
Разработчики: Михин Павел, Шильникова Виктория, Субботина Елена, Чучмина Елена. Научный руководитель: Соломатин Д.И. HTML-Remaking.
Типы данных. В Delphi в объявлении переменной необходимо указать ее тип Стандартные типы уже определены в языке, а переменную такого типа можно объявить,
Назначение системы BIOS. Что такое BIOS? BIOS (Basic Input Output System) - базовая система ввода-вывода. Это часть программного обеспечения PC, поддерживающая.
Автоматизация сборки и модификации разнородной компьютерной документации: разработка графического интерфейса приложения и формата файлов проекта. Исполнитель:
Инструменты для аналитики: источники данных, нормализация и публикация. Алексей Коваленко Начальник отдела развития.
Android Comapping Продолжение студенческого проекта в Летней школе СПбГУ, Математико-Механический факультет, 2009.
Файл это поименованная область диска. Чтобы записать информацию в файл надо проделать следующие операции 1.Открыть файл 2.Вывести данные в файл 3.Закрыть.
Исполнитель: Утяшева И.А. Научный руководитель: к.ф.-м.н. Винокур В.В.
Основано на теории, практике, размышлениях, Lessons Learned.
JavaScript фреймворки. Куда катится мир. Владимир Кузнецов UWDC2012.
Обнаружение уязвимостей в web- приложениях, написанных на Python, средствами динамического анализа исходных кодов Заливин Д.А. Козлов Д.Д. Петухов А.А.
1.3. Операционная система: назначение и состав. На IBM-совместимых персональных компьютерах исполь­зуются операционные системы корпорации Microsoft Windows.
Многоуровневое мандатное управление доступом в многооконной графической среде ОС класса Linux Авторы: к.т.н., доцент Д. В. Ефанов * аспирант кафедры 36.
Харичкин Александр МФТИ(ГУ) 16 июня Характеристики информационных систем Объем кода Сложность модели данных Масштабируемость Возможность повторного.
Транксрипт:

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

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

Введение

Server: OS Ubuntu Linux Workstation: OS Windows XP/7 Workstation: Mac OS X

Selenium IDE

Преимущества: Простота написания тестов с использованием такого метода Недостатки: Очень много повторяющегося кода. Локаторы объектов хранятся в тесте.

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

Использование mapping-файла Для обеспечения лучшего контроля вынесем объявление всех локаторов в отдельное хранилище. Это может быть xml-файл:

Использование mapping-файла Это может быть cfg/ini-файл: Был выбран для использования cfg-файл из-за простоты реализации и поддержки.

Использование mapping-файла Пример кода для работы с cfg-файлом: В итоге мы получаем возможность получать локатор:

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

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

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

PageObject модель Модель сайта: MainPage Sign in Open ent.page EntertainmentPage Open music view MusicPage Sort by Music style Show only

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

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

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

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

PageObject модель

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

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

Modified PageObject модель Модель сайта: Page model Is text on page Reload Close Link model Click Double click TextField model Set textGet textVerify text Page model Is text on page Reload Close Link model Click Double click TextField model Set textGet textVerify text

Modified PageObject модель Выделим следующий элемент в логической структуре PageObject модели объект элемента страницы, что обеспечит: Улучшенную структуру объектов страниц; Уменьшит повторяемость кода; Уменьшит время на ознакомление с общей моделью.

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

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

Modified PageObject модель С помощью данного подхода упрощается работа с о специфическими элементами различных библиотек. Например JSON ComboBox-элемент: поле для ввода, кнопка и div-секции со всеми возможными элементами.

Modified PageObject модель

Введение в py.test

Система разработана Holger Krekel-ом. Инсталляция: easy_install pytest pip install pytest Запуск через командную строку: py.test

Введение в py.test Стандартные операции ввода/вывода показываются только в случае ошибки Автоматическое распознование тестов: ищутся все файлы test_*.py внутри файлов ищутся все функции test_* и все Test классы.

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

Введение в py.test Можно пропустить тест: Можно пропустить тест при условии: Можно пометить тест как негативный: Можно пометить тест своей собственной меткой:

Введение в py.test

Заключение

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

Спасибо за внимание! Copyright © 2011 SoftServe, Inc. Контакты Прищенко Константин