пятница, 9 сентября 2011 г.

Selenium + Ruby + Jenkins

Несколько месяцев назад начали заново внедрять автоматизацию (до этого её тоже делали, только на старом selenium и на языке php). Сразу оговорюсь, пользуюсь linux.

Для этого сейчас используем:
1) selenium-webdriver инструмент, который анализирует наши тесты, находит в них команды для манипуляции браузером и команды для выполнения определенных действий и проверок;
2) язык программирования, на котором пишем тесты: ruby (v 1.9.2)
3) jenkins инструмент непрерывной интеграции, с помощью чего запускаются тесты в определенное время и приходит отчет об ошибках.



Для установки надо выполнить: sudo gem install selenuim-webdriver.
Методы для работы хорошо описаны на их сайте.
 После установки ruby, также необходимо поставить менеджер пакетов rubygems и для автоматизации сборки программного кода gem rake:
sudo apt-get install rubygems
sudo gem install rake

Возможно потребуется обновление rubygems:
sudo gem install rubygems-update
sudo ./update_rubygems

Для изучения ruby прочитал Крис Пайн "Учись программировать"  + блоги, поиск.

После установки/изучения ruby и selenium, с помощью плагина selenium IDE можно легко набросать тест добавления/поиска объекта (или что-то на своё усмотрение) и затем его использоваться для selenium.

Чтоб проще было отлавливать ошибки, есть хорошая проверка - raise, например:

# тело программы
   if test == test
     p "test ok"
     else
     riase "alarm при добавлении объекта"
  end
   
- в данном случае, если проверка прошла не успешно, то показывается сообщение об ошибке в какой части тела программы произошла неполадка.

Для поиска exception на страницах проекта использовали такую хитрость, чтоб не перечислять в коде урлы, их внесли в базу и потом изымали, далее об этом пойдёт речь.

Data Driven Testing  – это такой подход к тестированию, при котором тестовые данные хранятся отдельно от скриптов, обычно в документе Excel, файле CSV или в базе данных.

В качестве базы используем MongoDB. Для этого устанавливается gem mongo (gem install mongo), сама база устанавливается (описание для ubuntu 11.04):

1) sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
2) Добавить в /etc/apt/sources.list :
deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen

3) sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

4) sudo apt-get update 

5) sudo apt-get install mongodb-10gen



Для запуска тестов используем Jenkins, у нас он находится на отдельном сервере, стоит напрячь сисадмина ради такого. Посмотреть, как работает jenkins.

3 комментария:

  1. To: Kostuan
    незнаю насчет руби у меня на phpunit тесты. запускаю через execute shell (on unix) и команда phpunit /path to test/testname.php

    ОтветитьУдалить
  2. to Kostuan
    создаешь новую работу "http://clip2net.com/clip/m56053/1323082839-clip-29kb.png"
    далее настраиваешь время запуска и указываешь какой тест запустить, например http://ci.jenkins-ci.org/job/infra_plugins_svn_to_git/configure "http://clip2net.com/clip/m56053/1323083314-clip-53kb.png"

    ОтветитьУдалить