1. Кратко о Watir (установка + пример теста).
2. Установка Selenium RC + пример теста.
2.1. Выбор кодировки.
upd. решила в двух словах объяснить. Этот пост написан для тех людей, кто "в теме". Selenium - очень хороший инструмент для автоматизации тестирования web-приложений (аналог - Watir). До недавнего времени я работала только с Selenium IDE - плагин для фаерфокса, который просто записывает и потом воспроизводит все ваши действия в браузере. В инете есть много информации о нем и я не хочу повторяться.
С помощью Selenium RC мы можем писать автоматизированные тесты для веб-приложений на любом языке программирования (поддерживает Java, Ruby, Python, Perl, PHP, C#). Я использую Ruby.
Сначала я запускала тесты только в firefox (при помощи Selenium IDE), но потом мне захотелось делать это в остальных браузерах - Опере, ИЕ, Сафари, Хроме. Все началось с установки Watir, но Хром почему-то не хотел запускаться. Получалось, с помощью Watir я могу писать тесты только под IE+FF и меня это не совсем устраивало. Поэтому было принято решение переключиться на Selenium.
Как-то я хотела разобраться с Selenium RC, сейчас не вспомню, на каком этапе застряла, но что-то у меня тогда не получалось, а подсказать было некому. Благодаря главному программеру, наконец, разобралась )) Сейчас пишу по памяти, постараюсь ничего не упустить.
Устанавливаем Watir
Сразу хочу сказать, что под Win7 64-bit работать категорически отказывается, сейчас работает под XP 32-bit )) И хотя Selenium в общем-то круче, все равно напишу про Watir хотя бы пару слов.
1.устанавливаем Ruby с помощью one-click installer
http://www.ruby-lang.org/en/downloads/ 2.ставим библиотеку для Ruby
gem install watir
и так же firewatir/chromewatir
Для проверки запустим самый простой тест:
require "chrome_watir"
browser = ChromeWatir::Browser.new
browser.goto '
http://www.google.com'
В IE все ок, Firefox 3.5.5 постоянно вылетал, но когда я поставила 3.0.15 - все заработало. А вот с Хромом так и не получилось. При запуске вылетает такая ошибка:
Сначала команда 'chrome' в cmd у меня не срабатывала. Потом в переменной окружения PATH добавила путь C:\DOCUME~1\9335~1\LOCALS~1\APPLIC~1\Google\Chrome\APPLIC~1 и хром стал запускаться из командной строки.
Однако при запуске chrometest.rb вылетает та же ошибка, что и сначала. Почему? Хз… Кто-нибудь знает?
Watir очень даже неплох, однако Селениум пока его переплюнул, т.к. под Селениумом мне удалось запустить все браузеры ))
На самом деле, с помощью Watir писать удобно, для этого покажу маленький пример.
Пробуем залогиниться на нашей жжшке.
require 'watir'
ie = Watir::IE.new
ie.goto "
http://www.livejournal.com/?returnto=http://crypt-rat.livejournal.com/"
# заполняем поля логин, пароль
ie.text_field(:name, "user").set("crypt-rat")
ie.text_field(:name, "password").set("mypassword")
# нажимаем на кнопку "Sign in"
ie.button(:name, "_submit").click
Вот и все, ничего сложного.
Устанавливаем Selenium RC
1.устанавливаем Ruby с помощью one-click installer
http://www.ruby-lang.org/en/downloads/2.gem install selenium-client
3.скачиваем Selenium RC
http://seleniumhq.org/download/ распаковываем, запускаем selenium-server-1.0.1
4.Если вы не прописали в переменной PATH пути к браузерам - прописываем:
Мой компьютер - Свойства - Дополнительно -Переменные среды. (для Win XP)
Ищем переменную Path, нажимаем кнопку «Изменить» и добавляем путь к браузеру (например, если браузер у нас находится здесь "D:\browsers\safari 4\Safari.exe" мы добавляем строку D:\browsers\safari 4
5. Пишем батник для запуска (для удобства, по желанию))
java -jar D:\vash put’\selenium-server-1.0.1\selenium-server.jar
Т.е. прежде, чем напустить наш тест, мы сначала запускаем сервер. Для этого и пишем батник.
Дальше можно записать какой-нибудь маленький тест для проверки. Продолжим с нашим жж для наглядности.
Мы просто залогинимся и добавим новый пост.
upd.забыла прокомментировать закомментированный код )
def teardown
browser.close_current_browser_session
end
-закрывает браузер по окончанию теста.
Запускаем Chrome ))
И возвращаясь к хрому - когда я писала :browser => "*chrome" - у меня запускался firefox. Поначалу я не могла понять, в чем же дело. Все оказалось, как всегда, очень просто - надо было вместо "*chrome" написать "*googlechrome" =)
Выбираем кодировку
Я использую редактор E-TextEditor (версия 1.0.39), в нем по умолчанию была выставлена кодировка windows-1251. Дело в том, что когда нам встречаются русски линки/кнопки (пример, browser.select "security", "label=Только мне (личное)" - вылетает ошибка. Нам нужно поменять кодировку на UTF-8. Если вы используете такой же редактор, меняем кодировку таким образом: File->Save format->Encoding->Unicode 8 bit (UTF-8).
Пока что все. Может, кто-то меня дополнит или поправит (на сколько я знаю,
astenixочень хорошо во всем этом разбирается). В общем, если какой-то начинающий тестер это прочтет и узнает что-то для себя новое - значит, не зря писала.
P.S. еще раз хочу поблагодарить нашего главного программера за то, что помог разобраться со всем этим!
И хотя он этого все равно не прочитает, я не могу не вспомнить о нем.