Selenium IDE — автоматическое тестирование сайта

Сегодня наткнулся на Selenium IDE, это плагин в Firefox, который позволяет атоматизировать тестирование работы сайта.
Т.к. плагин работает в браузере (похоже также будет работать и в Internet Explorer), то возможно полноценное тестирование, с учетом работы DHTML/AJAX.

Процесс настройки теста довольно таки прост:

  • Пишем в поле Base URL адрес откуда будем тестить.
  • В списке команд, в меню по правой кнопки мыши, выбираем Set / Clear Start Point
  • Переходим в браузер и делаем нужные нам действия, например заполняем форму логина и щелкаем «Вход»
  • В Selenium IDE нажимаем красную пимпу, типа «все, хватит»

Вот у нас и готов тест входа на сайт. Можно нажимать кнопку старта для автоматического прохождения теста.
По коду получилось чтото вроде:

open "/user/login.html"
    assertTitle "Войти"
    type "j_username", "some@where.com"
    type "j_password", "pass"
    clickAndWait "//input[@value='Вход']"
    assertTitle "Информация пользователя"

Код этот можно редактировать как вручную, так и мышой. Вариантов команд там порядочно, куча различных действий, assert'ов, поиска по XPath и пр., этого наверное хватит для основных тестов.
В идеале чтобы все это потом из Ant'а запускать и писать отчет в общий XML юнит-тестов, но, похоже, это пока неосуществимо. Хотя можно пользовать Jakarta Cactus для автоматического тестирования контроллеров из Ant'а, и переодически самому запускать тест взаимодействия с пользователем через Selenium.
Надо попробовать на текущем проекте, уж явно будет лучше чем самому постоянно баловатся приложением.

  • http:// Виталий

    А как насчет Mercury QuickTest Professional v8.2?

    Он ведь все это умеет делать и даже помощнее будет.

  • http:// igor

    Посмотрел. Да наверное умеет, да помощнее, но процесс очень сильно усложняется и требует гораздо больших затрат на редких специалистов, на покупку этого инструмента, на настройку и пр. С Selenium разберется и ребенок, работает сразу из коробки.

    Я в свое время имел опыт работы с линейкой Rational, так вот она нужна была лишь для того, что бы показать что мы CMM5, что денег нам платить надо больше, что людей в проекте куча и все хорошие специалисты. А на саммом деле никому не доставляло удовольствия работать такими «инструментами».

  • http:// Nkravchenko

    Я пробовала работать с QTP, Rational Robot, Selenium. На мой взгляд как раз с QTP может разобраться даже ребёнок. Selenium будет менее понятным. Например, я так и не поняла, как подлезть к базе данных из Selenium? В QTP это делается довольно легко

  • http:// igor

    эм... а можно вопрос: а как это «к базе» и «из селениум»? это же совсем разные вещи?

  • http:// Nkravchenko

    Например написать SQL запрос. В QTP для этих целей есть tools

  • http:// igor

    Я все равно не понимаю, как это связано с селениумом? он отправляет запросы к браузеру. А для sql есть тот код из которого вызывается selenium.

    Т.е. раз вы пишете юниттест, то зачем вам может понадобится доступ к базе именно из браузера, если у вас и так есть язык программирования, умеющий помимо прочего и обращаться к БД?

  • http:// igor

    Я понял причину того почему мы друг друга понять не могли 🙂

    Это потому что я тут писал про Selenium IDE, встроенной в браузер, а при ответе думал уже про нормальное юнит-тестирование из java с помощью selenium.

    Тогда да, в первом случае конечно нет доступа к базе и пр., но и рассчитана эта штука как я понял для баловства и первичного скелетирования теста. А вот во втором случае, при использовании запросов через seelenium server, можно конечно же выполнять все что умеет java код.