2008 г.

Тестирование web-приложений с помощью Ruby

Александр Симаков, alexander-simakov.blogspot.com

Введение

Тестирование web-приложений является неотъемлемой частью процесса их разработки. Существуют различные уровни тестирования, вот некоторые из них:

  • модульное тестирование;
  • интеграционное тестирование;
  • системное тестирование;
  • приемочное тестирование.
В рамках модульного тестирования проверяются минимально возможные компоненты, напримерПример рассматривается в риторике чаще всего в контексте доказательств и аргументов. Для Квинтилиана пример является одним из дополняющих, наглядных доводов к высказыванию, либо упоминанием полезного, настоящего или якобы существующего образца убеждения того, что определено тобой одним. Правда, в отличие от доказательств, связь с предметом обсуждения должна быть установлена прежде автором или оратором., отдельные классыКласс (от лат.classis— группа) в классификации— группа предметов или явлений, обладающих общими признаками. или функции. Интеграционное тестирование предназначено для проверки связи между компонентами. Задачей системного тестирования является проверка как функциональных, так и не функциональных требований к системе в целом. Приемочное тестирование проверяет поведениеПоведение— способность животных изменять свои действия под влиянием внутренних и внешних факторов, характерная черта животного типа организации. Поведение имеет огромное приспособительное значение, позволяя животным избегать негативных факторов окружающей среды. У многоклеточных организмов поведение находится под контролем нервной системы. системы на предмет удовлетворения требований заказчика.

В этой статье рассказывается о высокоуровневой методике тестирования web-приложений которую можно использовать как для приемочного так и для системного тестирования. Ключевую роль при этом играет Ruby-библиотека Watir (Web Application Testing In Ruby). Библиотека Watir позволяет запрограммировать действия браузера Internet Explorer на языке Ruby. Таким образом можно автоматизировать значительную часть ручной работы тестеров по заполнению форм, переходу по ссылкам, проверке User-Stories т.д.

Библиотека Watir

Для управления браузерВеб-обозреватель, браузер (от англ.Web browser; вариант броузер — устаревшая и менее предпочтительная форма) — программное обеспечение для просмотра веб-сайтов, то есть для запроса веб-страниц (преимущественно из Сети), их обработки, вывода и перехода от одной страницы к другой.ом библиотека Watir использует протокол OLE. Это накладывает определенные ограничения как на выбор платформы, так и на выбор браузера. Так, на момент написания этих строк Watir работает только под Windows и только с Internet Explorer. Не отчаивайтесь раньше времени если у вас другая система или вы пользуетесь другим браузером! Существуют версии Watir для Firefox и для Safari:

  • FireWatir - работает с Firefox под Linux, Windows и Mac;
  • SafariWatir - работает с Safari под Mac.
В перспективе разработчики планируют объединить все три версии в один проект. Отмечу, что аналогиАналогия (др.-греч. — соответствие, сходство)— подобие, равенство отношений; сходство предметов (явлений, процессов) в каких-либо свойствах, а также познание путём сравнения. Между сравниваемыми вещами должно иметься как различие, так и подобие; то, что является основой сравнения (см. Tertium comparationis), должно быть более знакомым, чем то, что подлежит сравнению. Различие и подобие вещей должны существовать в единстве (метафизическая аналогия) или по крайней мере не должны быть разделяемы (физическая аналогия). В т.н. атрибутивной аналогии то, что является основанием подобия двух вещей, переносится с первого члена аналогии на второй (когда, напр., по аналогии с человеческим телом поступки, поведение человека рассматривают как «здоровые»). В т.н. пропорциональной аналогии каждый из членов аналогии содержит нечто, в чём он в одно и то же время подобен и не подобен другому (см. Analogia entis). Watir есть и для других языков программирования:
  • Watij - версия Watir для Java;
  • WatiN - версия Watir для .Net;
  • BrowserUnit - еще одна версия Watir для .Net.
Очень подробный каталог инструментов, аналогичных Watir можно найти тут. Почти наверняка вы найдете подходящее решение для вашей платформы и языка программирования. В этой же статье речь пойдет только об оригинальной версии Watir.

Установка

Если вы подключены к интернету напрямую, то для установки Watir достаточно всего одной команды:

gem install watir

Bulk updating Gem source index for: http://gems.rubyforge.org
Install required dependency win32-process? [Yn]  Y
Install required dependency windows-pr? [Yn]  Y
Install required dependency windows-api? [Yn]  Y
Install required dependency win32-api? [Yn]  Y
Select which gem to install for your platform (i386-mswin32)
1. win32-api 1.2.0 (ruby)
2. win32-api 1.2.0 (x86-mswin32-60)
3. win32-api 1.1.0 (x86-mswin32-60)
4. win32-api 1.1.0 (ruby)
5. Skip this gem
6. Cancel installation
> 2
Install required dependency win32-api? [Yn]  Y
Select which gem to install for your platform (i386-mswin32)
1. win32-api 1.2.0 (x86-mswin32-60)
2. win32-api 1.2.0 (ruby)
3. Skip this gem
4. Cancel installation
> 1
Install required dependency activesupport? [Yn]  Y
Successfully installed watir-1.5.6
Successfully installed win32-process-0.5.9
Successfully installed windows-pr-0.9.4
Successfully installed windows-api-0.2.4
Successfully installed win32-api-1.2.0-x86-mswin32-60
Successfully installed win32-api-1.2.0-x86-mswin32-60
Successfully installed activesupport-2.1.1
Installing ri documentation for watir-1.5.6...
Installing ri documentation for win32-process-0.5.9...
Installing ri documentation for windows-pr-0.9.4...
Installing ri documentation for windows-api-0.2.4...
Installing ri documentation for win32-api-1.2.0-x86-mswin32-60...
Installing ri documentation for win32-api-1.2.0-x86-mswin32-60...
Installing ri documentation for activesupport-2.1.1...
Installing RDoc documentation for watir-1.5.6...
Installing RDoc documentation for win32-process-0.5.9...
Installing RDoc documentation for windows-pr-0.9.4...
Installing RDoc documentation for windows-api-0.2.4...
Installing RDoc documentation for win32-api-1.2.0-x86-mswin32-60...
Installing RDoc documentation for win32-api-1.2.0-x86-mswin32-60...
Installing RDoc documentation for activesupport-2.1.1...
Если вы подключены через прокси, то перед инсталляцией потребуется задать переменную окружения http_proxy в следующем виде:
http://user:password@host:port
Для установки переменной окружения выберите "Мой компьютер" -> "СвойстваСвойство (в философии, математике и логике)— атрибут предмета (объекта). Например, о красном предмете говорится, что он обладает свойством красноты. Свойство можно рассматривать как форму предмета самого по себе, притом, что он может обладать и другими свойствами. Свойства, следовательно, подпадают под действие парадокса Рассела и парадокса Греллинга-Нельсона." -> "Дополнительно" -> "Переменные среды"-> "Создать".

После установки запустите интерактивную консоль Ruby irb и наберите:

irb(main):001:0> require 'watir'

=> true

irb(main):002:0>
Если при загрузке модуля watir не возникло ошибок, значит установка прошла успешно.

Пример

Следующий пример демонстрирует базовые принципы работы с библиотекой Watir. Сохраните этот код в файле и запустите его на выполнение. Со стороны будет казаться, что браузер делает все сам: загружает страницы, заполняет формы, нажимает на кнопки и т.д. Для удобства, активный элемент подсвечивается желтым цветом.

#
# simple_example.rb
#
# Александр Симаков, <xdr (тчк) box на Google Mail>
# http://alexander-simakov.blogspot.com/
#

# Подключаем библиотеку Watir
require 'watir'

# Открываем новое окно IE
ie = Watir::IE.new

# Переходим на страницу Google
ie.goto "http://www.google.ru/"

# Заполняем поисковый запрос
ie.text_field(:name, "q").set "Watir home page"

# Нажимаем на кнопку "Мне повезет!"
ie.button(:name, "btnI").click

# Проверяем, есть ли на странице указанный текст
if ie.text.include? "Web App Testing in Ruby"
  puts "Yes!"
end
Итак, давайте разберемся как работает эта программаПрограмма - (от греч. — пред, греч. — запись) термин, в переводе означающий «предписание», т.е.. В начале мы открываем новое окно Internet Explorer. Отмечу, что Watir также позволяет подключаться и к уже открытым окнам. Нужное окно при этом можно найти либо по ссылке, которая указана в адресной строке, либо по заголовку окна.

Далее мы переходим на сайт Google. На главной странице имеется поле для ввода запроса и две кнопки. Watir позволяет искать элементы расположенные на странице по многим параметрам: по атрибутам id, name, class, по заголовку, по ссылке, по порядковому номеру, по выражению xpath и т.д. В зависимости от типа элемента к которому вы хотите обратиться этот список может несколько отличаться. Так в строке 18 листинга мы обращаемся к текстовому полю у которого атрибут name имеет значение q. Если такой элемент существует, то Watir вернет объект класса TextField. В этом классе определен метод set, который заполняет текстовое поле: мы хотим найти домашнюю страницу Watir.

Теперь нажмем на кнопку "Мне повезет!". В отличие от обычного поиска мы автоматически перейдем по самой релевантной ссылке. Поскольку наш запросЗапрос— это формулирование своей информационной необходимости пользователем некоторой базы данных, как, например, поисковой системы. Для составления запроса используется язык поисковых запросов. достаточно точен мы с очень высокой долей вероятности попадем на домашнюю страницу проекта Watir.

Отмечу, что библиотека Watir позволяет не только находить объекты по различным критериям и манипулировать ими, но и анализировать результат. Так в строке 24 листинга мы проверяем содержит ли страница на которую мы перешли строку "Web App Testing in Ruby". Эту возможностьВозможность — направление развития, присутствующее в каждом явлении жизни; выступает и в качестве предстоящего, и вполне объяснимо рациональным путем: в каждой возможности присутствует вероятная невозможность, «возможность невозможного». Возможность не определяется познанием того, что может быть. Познание вероятностей, возможностей не всегда влияет на нашу возможность. На изучении возможности основывается, главным образом, исследование бытия и события. можно использовать для написания модульных тестов.

IE Developer Toolbar

Неоценимую помощь в написании тестовых сценариев оказывает IE Developer Toolbar - специальная отладочная панель для Internet Explorer. С ее помощью можно без труда просмотреть атрибуты любого элемента на странице:

Скачать IE Developer Toolbar можно отсюда (~ 700 Kb). В качестве альтернативы можно также попробовать другую панель - DebugBar.

Интерактивная консоль Ruby

Если при написании тестового сценария вы зашли в тупик, например, не можете найти элемент, генерируемый автоматически при помощи JavaScriptJavaScript— объектно-ориентированный скриптовый язык программирования. Является диалектом языка ECMAScript., попробуйте irb - интерактивную консоль Ruby. Это незаменимый и универсальный инструмент Ruby-разработчика на все случаи жизни. Продемонстрируем методику использования irb на простом примере:

irb(main):001:0> require 'watir'

=> true

irb(main):002:0> ie = Watir::IE.new

=> #<Watir::IE:0x340db40 @ole_object=nil, @typingspeed=0.08 ...

irb(main):003:0> ie.goto "http://www.google.ru/"

=> 1.015

irb(main):004:0> ie.show_all_objects

--Objects in page ----
...
hidden  name=hl    id=    value=ru             alt=  src=
text    name=q     id=    value=               alt=  src=
submit  name=btnG  id=    value=Поиск в Google alt=  src=
submit  name=btnI  id=    value=Мне повезёт!   alt=  src=
radio   name=lr    id=all value=               alt=  src=
radio   name=lr    id=il  value=lang_ru        alt=  src=
hidden  name=aq    id=    value=f              alt=  src=
hidden  name=oq    id=    value=               alt=  src=
...
=> nil

irb(main):005:0> ie.button(:name, "btnG").flash

=> nil

irb(main):006:0>
В этом примере мы загрузили библиотеку Watir, открыли новое окно, перешли на сайт GoogleGoogle (МФА [ul], MWCD /g-gl/, рус. Гугл)— крупнейшая поисковая система, принадлежащая корпорации Google Inc. и попросили вывести все доступные на данной странице объекты. В этом списке имеются две кнопки: btnG и btnI. Последняя команда заставляет кнопку "Поиск в Google" мерцать желтым цветом некоторое время. Этот прием удобно использовать для поиска элементов.

Что дальше

В этой статье мы познакомились с библиотекой Watir. Это очень мощный и гибкий инструмент с помощью которого можно автоматизировать тестирование любого web-приложения. За время существования проекта вокруг него сформировалось внушительное сообщество пользователей. На WiKi-портале сообщества можно найти статьи, обзоры, учебники, FAQ, спецификации и другую полезную информацию по Watir. Заходите и учитесь!

Мы рекомендуем еще посмотреть:

 
Навигатор по документам
Тема: 
Тип: 
за период:
Год: 
Месяц: 
 
s-networks в в прямом эфире - 24 июля

24 июля 2009 г (пятница), в 15:00 (московское время) компания s-networks проводит очередной он-лайн семинар «Продажа Cisco в новых условиях. Цены, сроки, доступность позиций к заказу в условиях DDU. Ответы на вопросы». Ведущий прямого эфира - коммерческий директор s-networks Сергей Недосекин.

подробнее
 
Cеминар для партнеров Северо-Западного региона

1 июля 2009 г компании Cisco и s-networks организуют семинар для партнеров Северо-Западного региона.
Семинар пройдет в городе Санкт-Петербург. К участию приглашаются все партнеры Cisco.

подробнее
 
s-networks в прямом эфире

С 3 июня компания s-networks проводит серию он-лайн семинаров по оборудованию Cisco.
Семинары проходят по средам, с 15:00 до 16:00 (московское время).
Ведущий прямого эфира – Станислав Рыбалко – рассказывает об актуальных технологиях и стандартах, перспективных продуктах Cisco.
Формат семинара - Webex.

подробнее
 
Cisco Rewards

Уважаемые партнеры, сообщаем вам что программа Cisco Rewards запущена и начала действовать. Покупайте оборудование Cisco и накапливайте призовые баллы.

подробнее
 
Беспроводные решения Cisco в области Enterprise Wi-Fi и MESH

25 марта 2009 года компании s-networks и Cisco проводят совместный семинар "Беспроводные решения Cisco в области Enterprise Wi-Fi и MESH", организованный в рамках маркетинговой партнерской программы «Работаем вместе!»

подробнее
 
Курс на Восток!

Компании Cisco и s-networks объявляют о старте антикризисной маркетинговой программы.
Новая совместная маркетинговая программа «Курс на Восток!» стартует в декабре 2008 г. и продлится до конца января 2009 г. Программа нацелена на поддержку бизнеса и антикризисных настроений у наших SMB-Select партнеров. Продлив активный период продаж еще на один месяц и став победителем программы, Вы сможете провести несколько незабываемых дней в одной из экзотических стран.

подробнее
 
13 компаний из России и Украины названы лучшими партнерами Cisco по итогам 2007 года

Московская компания s-networks (партнер года в номинациях "Дистрибьютор года" и "Самый высокий рост сервисного бизнеса Cisco в России, Украине и других странах СНГ"). Компания добилась наивысшего показателя роста сервисного бизнеса Cisco среди всех партнеров в странах СНГ - 91%.

подробнее
 
«Дистрибьютор года»

     На ежегодном саммите партнеров Cisco компания s-networks названа партнером года в номинации «Дистрибьютор года»
7-11 апреля 2008 г компания Cisco провела в Гонолулу (США, Гавайи) очередной партнерский саммит Cisco Partner Summit 2008, на котором были подведены итоги минувшего года, состоялась презентация стратегических инициатив и партнерских программ компании. В рамках этого события прошло награждение партнеров компании, добившихся значительных достижений за прошедший год.

подробнее
 
12-я Конференция по IP-телефонии и IP-коммуникациям.
Итоги.

В Москве 28 ноября 2007 года завершила работу 12-я Ежегодная Конференция по IP-телефонии и IP-коммуникациям, организаторами которой выступили компании s-networks и МФИ Софт.

Конференция прошла при поддержке Министерства информационных технологий и связи РФ и Ассоциации Документальной Электpосвязи. Генеральным спонсором выступила компания AVAYA, спонсором дня стала компания Cisco, а спонсорами секций - компании Alcatel-Lucent, Discovery Telecom, EMC и Яndex. Спонсор регистрации участников Конференции – VoIP eXchange.

В этом году по насыщенности программы конференция превзошла все предыдущие: пленарные заседания, параллельно проходящие в четыре потока заседания 17-ти секций, четыре «круглых стола» – все это позволило 400 участникам из 23 городов России и 11 стран ближнего и дальнего зарубежья работать с максимальным КПД.

подробнее
 
Новая маркетинговая программа s-networks "Новому Году - достойную встречу!"

Срок действия программы: 7 ноября – 27 декабря 2007 г
s-networks объявляет о старте новой маркетинговой программы по продвижению решений компании Cisco "Новому Году - достойную встречу!"
К участию приглашаются партнеры компании s-networks. Победители программы по традиции встретятся в Амстердаме и побывают в офисе и демо-лаборатории компании Cisco.

подробнее
Документов найдено - 227 Страница - 1 (23)   [1] [2] [3] [4] ..Следующая страница
2009 IT и оборудование для бизнеса, S-NETWORKS. Информационные технологии и Информационное оборудование