понедельник, 26 октября 2009 г.

о Selenium IDE

Знакомство с продуктами Selenium лучше начинать с Selenium IDE.
Для начала необходимо установить броузер Mozilla Firefox.
Далее в меню "Инструменты"->"Дополнения" необходимо найти аддон Selenium IDE и установить его. После установки и перезапуска броузера можно начинать записывать свой первый тест.

Для наглядности пусть наш первый автотест проверяет доступность сайта gmail.com и наличие на его стартовой странице тех или иных записей.

1. Меню "Инструменты"->"Selenium IDE" - должно появиться окошко с конструктором тестов
2. откройте новую вкладку и наберите в адресной строке http://google.com
3. перейдите в IDE и заполните поле "Базовый url" значени "http://google.com"
4. начните запись теста нажатием на красный кружок
5. перейдите на вкладку с гуглом и нажмите ссылку gmail - в результате IDE должна записать нам первые команды автотеста:
  • open /
  • click link=Gmail
6. критерием успешности теста для простоты выберем факт наличия на полученной странице надписи "Добро пожаловать в почту Gmail" . Чтобы записать в тест команду такой проверки нажмите правой кнопкой мыши на надписи "Добро пожаловать в почту Gmail" и щелкните по "verifyTextPresent (....)" - это действие добавит в сценарий вашего автотеста соответсвующую команду проверки. Для первого теста достаточно проверок!)
7. Останавливаем запись теста нажатием на красный кружок.
8. Проверяем работоспособность теста нажатием на кнопку с хинтом "Play current test case" (имейте ввиду, что IDE прогоняет тест в текущей активной вкладке:) - в результате скорее всего вы увидите, что тест не прошел (красная строка "false")
В чем же дело? Ведь мы прогнали тест той же утилитой, которой его и записали!
Причина в том, что IDE записала в сценарий теста команду click, выполняя ее драйвер тестов не должидается загрузки нового содержимого броузера, а сразу выполняет следующую команду (у нас это verifyTextPresent). Понятно, что моментально страницы не грузятся даже при очень быстром коннекте, и , следовательно, на момент проверки наличия текста, его еще нет в природе (то есть , в броузере) и тест проваливается. Чтобы данный тест прошел необходимо заменить команду click на clickAndWait. Сделать это нужно вручную. Щелкаете на команде и редактируете поле "Command", заменяя строку "click" на "clickAndWait". Бага это или фича IDE? Скорее "особенность реализации", ведь в некоторых случаях нужен действительно click.

9. Прогоняем еще раз записанный тест и видим , что на этот раз он "прошел" успешно.

Отмечу, что в IDE есть возможность настройки для таймаута на загрузку страницы. По-умолчанию этот таймаут равен 30000 милисекунд. То есть, данный тест провалится , если в течении 30 сек. от гугла не удастя получить страницу с искомой надписью.


Полученный тест можно сохранять в файл и даже экспортировать в некоторые наиболее популярные высокоуровневые языки программирования: java, c#, perl. В своей повседневной рабочей деятельности я имею дело с perl , поэтому в одном из следующих постов я опишу, как программно работать с selenium , используя perl.

Записывая тесты с помощью Selenium IDE время от времени вы будете сталкиваться с тем, что не все она умеет делать автоматически и не все автоматически делает так как нужно именно вам (см. пример выше). Скажу только, что всегда можно добавлять команды вручную и всегда можно искать нужные элементы html-страниц с помощью Xpath. Для получания корректного xpath пользуйтесь расширением дополнения Firebug. Ну и если какие трудности с этим, обращайтесь - постараюсь помочь.

Файлы:
Пример теста, который можно открыть в Selenium IDE для выполнения и модификации.

p.s.
Это , конечно, не все , что можно реализовать с помощью этой IDE. Поддерживается великое множество команд, с помощью которых сможно сэмулировать практически все, что может руками сделать пользователь в броузере. Подробнее обо всем этом читайте на офсайте Selenium - ну и гугл в помощь (с).

Комментариев нет:

Отправить комментарий