|
Лаб4. Отчет по лабораторной работе набор тесткейсов, работающих с картой элементов. Теоретическая часть
Лабораторная работа №4. Использование UI-element в Selenium IDE
Цель работы: научиться использовать карту элементов для тестирования web-приложений с использованием Selenium IDE. Научиться разделять логику тестов и элементы, реализующие эту логику.
Отчет по лабораторной работе: набор тест-кейсов, работающих с картой элементов.
Теоретическая часть Элемент интерфейса (UI-element) в Selenium IDE - это расширение, которое дает возможность определить связи между семантически значимыми именами элементов на веб-страницах с ними самими. Карта элементов хранится в отдельном файле с расширением *.js.
Определения Страница - уникальный адрес, а так же содержимое, доступное по этому адресу. На странице обычно присутствует несколько интерактивных элементов.
Элемент страницы - какой-либо элемент на веб-странице. В общем случае, элементом страницы является объект, с которым пользователь может взаимодействовать или содержание которого имеет важное значение.
Набор страниц - набор страниц, на которых доступен некоторый набор элементов страницы. Например, в приложении есть возможность авторизоваться посредством формы авторизации с нескольких страниц. Такие формы могут быть представлены одним набором элементов и, соответственно, ассоциироваться на различных страницах.
Элемент интерфейса - связь между значимым элементом страницы и локатором конкретного элемента. Элемент страницы может находиться, например, по XPath. Элемент интерфейса принадлежит набору страниц.
Аргумент интерфейса - опциональный атрибут логики, определяющий как будет сгенерирован XPath для элемента интерфейса. Обычно используется, когда один элемент интерфейса появляется несколько раз на странице и необходимо указать к какому именно элементу происходит обращение. Например, если на странице присутствует 20 чекбоксов, то номер чекбокса может служить аргументом интерфейса.
Карта интерфейса - коллекция наборов страниц, которые содержут в себе элементы интерфейса.
Определяющая строка интерфейса - некоторый текст, определяющий имя набора страниц, элементов интерфейса или аргументов интерфейса. Определяющие строки интерфейса используются для присваивания “человекочитаемого” названия для соответствующего элемента страницы.
Сценарий - логика, которая описывает как одна или несколько команд Selenium должна быть объединена в одну команду.
Командное соответствие - обычно присутствует в сценарии и посылает соответствующие аргументы в команды сценария. В одном сценарии, как правило, используются несколько командных соответствий.
Аргумент сценария - опциональная логика, определяющая использование сценария с измененными параметрами.
Почему необходимо применять карту элементов? Благодаря карте элементов ваш тест-кейс может выглядеть вот так:
|
open |
/ |
|
clickAndWait |
ui=allPages::section(section=topics) |
|
clickAndWait |
ui=topicListingPages::topic(topic=Process) |
|
clickAndWait |
ui=subtopicListingPages::subtopic(subtopic=Creativity) |
|
click |
ui=subtopicArticleListingPages::article(index=2) |
|
Формат описания карты элементов выглядит следующим образом:
var map = new UIMap();
map.addPageset({ name: 'aPageset' , ... }); map.addElement('aPageset', { ... }); map.addElement('aPageset', { ... }); ...
map.addPageset({ name: 'anotherPageset' , ... }); ... Карта объектов инициализируется при создании нового объекта UIMap. Следом определяется новый набор страниц, для каждого из которых могут быть определены элементы страницы.
Создание карты элементов Для создания карты элементов необходимо выполнить 3 шага: инициализировать саму карту, добавить необходимое количество наборов страниц и на каждый из них добавить необходимое количество элементов.
Создание карты осуществляется следующей командой:
var myMap = new UIMap(); Инициализация набора страниц и привязка его к карте осуществляется путем добавления объекта с набором определенных свойств к объекту карты:
myMap.addPageset(
{
name: 'mainPage', //Имя набора страниц. Будет отображаться в описании при вызове из Selenium IDE во вкладке References
description: 'investcafe main page', //Подробное описание. Будет так же отображено в Selenium IDE во вкладке References
pathRegexp: '.*' //Регулярное выражение, соответствующее набору страниц (в данном случае - все страницы сайта)
}
); Инициализация элементов страницы и привязка ее к карте элементов осуществляется следующим образом:
myMap.addElement('mainPage', //Указываем на каком наборе страниц будет этот элемент
{
name: 'marketMoodNum', //Человекопонятное имя для этого элемента
description: 'current mood of the market in number presentation', //Описание элемнета. Вывод аналогичен предыдущему примеру
locator: "//div[@]" //Местонаходения элемента на странице
}
); Добавление элемента с аргументами:
myMap.addElement('mainPage', //Указываем на каком наборе страниц будет этот элемент
{
name: 'menuElement', //Человекопонятное имя для этого элемента
description: 'main menu (link=
|
|