Функциональные web-тесты для Selenium в CubicTest [вводная]

В одну статью всё не уместится, в этой будут даны основы, которые будут необходимы для общего понимания и использования CubicTest.

CubicTest приятный инструмент для тех, кто занимается функциональным тестированием веб-страниц. Самостоятельной версии нет и для его использования потребуется Eclipse (я использовал Galileo). Тесты в итоге можно экспортировать либо в скрипты Selenium Core, либо в скрипты Watir, а можно никуда не экспортировать и запускать из Eclipse. В документации особо указывается, что с CubicTest можно протестировать всё, что основано на HTML, но Java апплеты и Flash ему не по зубам (какой сюрприз).

Но, обо всём по-порядку.

Установка

Установка CubicTest в Galileo, проще, чем описано на странице с инструкциями по установке (там используется старая версия Eclipse). Отчасти потому, что требуемые компоненты уже содержатся в Eclipse.

1. В Eclipse откройте меню Help > Install New Software


2. В новом окне в поле Work with нужно ввести http://boss.bekk.no/cubictest/update/ и нажать Add. После этого в списке доступных программ появится краткий список Web Testing Tool (в моём случае всего один).

3. Напротив CubicTest нужно поставить галочку и нажать Finish. После этого инсталятор проверит зависимости и выдаст список на загрузку и установку после чего нужно будет перегрузить Eclipse.

С установкой всё.

Создание проекта.

Ничего необычного нет, есть только несколько специфичных опций.

1. Выбор точки отсчёта (Startpoint)

Точка отсчёта это откуда начинается тест. Есть три варианта (v 1.9.6):

  • URL – привязываемся к реальной страничке.
  • Extension – привязываемся к страничке (или шагу) из другого теста
  • Sub test – тест нельзя будет запустить самостоятельно, он может быть только частью другого теста.

После этого будут только вопросы о том, добавлять ли CubicTest и Selenium в classpath. Тут уже личное дело каждого.

Так же в каждом проекте по умолчанию создаётся файл test-project.properties, в нём хранится информация о том, какой браузер и в каком режиме использовать для тестов. Google Chrome поддерживается изначально и никаких танцев с бубном не потребуется.

Концепция.

Проще пока не придумали.

В CubicTest реализовано несколько сущностей, которые и позволяют эффективно создавать тесты с помощью визуального редактора:

Наборы тестов (test suites) – наборы отдельных тестов (tests), собранных в логическую группу и взаимодействующих (прямо или косвенно) друг с другом.

Тесты (tests) – собственно тесты, описание последовательностей действий и состояний web приложения.

Страницы (page) и Состояния (states) – страницы или состояния. Например, если на тестируемой странице ввести текст, то это измени её состояние и добавит state в test.

Транзакции (transactions) и взаимодействие с пользователем (user interactions). Взаимодействие с пользователем – это те действия, которые совершаются на страницы – клики, ввод текста, выбор элементов списка. Несколько таких действий – это транзакция, которая меняет состояние (state) страницы (page).

Элементы страницы (Page elements) – это сущности представляющие элементы html, которые присутствуют или не присутствуют на странице. Через них осуществляется взаимодействие с пользователем (user interactions) и они используются для проверок.

Контекст (Context) – это элементы разметки одним махом – div, table (tr, td), span. Логически же это представление вложенности в DOM дереве, а их использование позволяет тестировать эквивалентные значения в разных частях HTML документа.

Идентификаторы (Itentifiers) – это свойства, по которым можно найти контекст и определить элемент на страницы. Идентификаторов не мало, часть из – атрибуты элементов, а часть HTML теги. В зависимости от элемента страницы набор идентификаторов раз и с помощью комбинаций элементов и контекста можно задавать элменты достаточно гибко. При исполнении теста CubicTest автоматически строит XPath по выставленным идентификаторам.

Точка отсчета (Start point) и расширения (Extentions) – об этом уже говорилось чуть выше. Это точки откуда начинается тест – web страница или другой тест.

Виртуальные страницы (Commons) – это страницы почти как настоящие, но на самом деле не существуюющие. Содержащиеся на них элементы можно использовать для проверок на разных страницах (что то вроде Data Module в Delphi).

Сабтесты (Sub Tests) – практически любой тест может быть включен в состав другого теста и будет выполнен в соответствии с порядком подключения.

Из всего этого складывается довольно простая матрёшка:

На этом я пока закончу и в продолжении расскажу уже о сами принципы и подходах к написанию тестов веб приложений с помощью CubicTest.

Leave a Reply

Your email address will not be published. Required fields are marked *