Показаны сообщения с ярлыком cucumber. Показать все сообщения
Показаны сообщения с ярлыком cucumber. Показать все сообщения

1/19/2015

Selenium Grid with Jenkins - хороший тандем для параллели тестов



Все кто занимается автоматическим тестированием, в частности написанием тестов, рано или поздно сталкиваются с одной и той же проблемой известной всем - ВРЕМЯ. Время, затраченное на прохождение всех тестов. Оно растет прямопропорционально с количеством написанных сценариев и никаким образом не хочет уменьшатся. Количество тестов растет - хорошо. Покрываем все больше и больше написаных фич. Время растет - плохо. Разработчики перестают прогонять тесты после изменения кода, ссылаясь на нехватку времени (и их можно понять). Оттого и получаем: и тесты есть и багов полно, которые могли быть выявлены этими самыми тестами. Данная участь коснулась и нашу команду.

1/15/2015

Jenkins, как инструмент для запуска тестов



Настало время нам познакомится с Jenkins’ом. Использовать его будем в качестве автоматического прогона тестов на удаленном сервере. Так как надоело использовать свою рабочую машину и ждать, когда же они наконец-то пройдут… Или упадут.

1/14/2015

Введение в Calabash




В процессе углубления в изучении тестирования мобильных приложений у меня возникло желание изучить автоматизацию тестирования данного типа приложений.
Мобильные приложения имеют ряд особенностей, которые не позволяют использовать для тестирования обычные инструменты. Для изучения был выбран фреймворк Calabash.

5/05/2014

Do you Remember Me?



   Порой приходится написать автотесты на Cucumber'e, для проверки такой маленькой фичи, как "Remember me". На первый взгляд кажется, что это всего лишь безобидный чекбокс, который необходимо выбрать при логине. Но когда вы подумаете о том, как этот чекбокс должен сработать, появятся вопросы... И простым check("Remember me") вы не обойдетесь.

2/16/2014

Настраиваем тестовое окружение Cucumber+Capybara+WebDriver (или Capybara-webkit) в Ruby on Rails приложении.


 

Существует несколько способов установки и настроить тестового окружение на вашем маке. Все они приводят к одному результату.
В этой статье будет рассматриваться самый простой и распространенный по мнению автора метод с использованием homebrew и rvm, хотя в качестве альтернативы можно использовать ruby-build  и  rbenv.
Для того, чтобы можно было считать ваше тестовое окружение настроенным, вы должны установить следующие компоненты:

- XCode
 - Homebrew - менеджер пакетов для MacOS
 - RVM (Ruby Version Manager)  Программа для управления версиями Ruby.
 - Необходимую версию Ruby в зависимости от проектов.
 - Необходимую версию Rails - фреймворка для веб-разработки, написанного на языке программирования Ruby.
 - Гемы

11/14/2013

Задание строгого порядка выполнения фич Cucumber'a


По умолчанию выполнение features/scenarios в Cucumber проходит согласно следующим правилам:

  1. В алфавитном порядке папок в папке features
  2. В алфавитном порядке файлов *.feature в папке
  3. В порядке размещения файлов *.feature находящихся в корне папки features
К примеру, мы имеем следующую структуру тестов
  • features
    • folder1
      • file1.feature
      • file2.feature
    • folder2
      • file3.feature
    • file4.feature
    • file5.feature
Выполнение команды cucumber приведет к запуску тестов в следующем порядке:
features/folder1/file1.feature
features/folder1/file2.feature
features/folder2/file3.feature
features/file4.feature
features/file5.feature

Но что же делать, если тестировщику нужно задать строгий порядок выполнения фич при запуске тестов?

При запуске Cucumber можно указать фичи в виде списка и их запуск будет произведен в указанном порядке. Например:
cucumber features/folder1/file2.feature features/folder2/file3.feature

Что делать с остальными фичами? Можно указать папку features в конце списка. Cucumber довольно умный и не станет запускать заново фичи, которые уже запускались до этого.
Таким образом строка
cucumber features/folder1/file2.feature features/folder2/file3.feature features
запустит тесты в нужном вам порядке.

9/27/2013

Навигация между окнами в автоматизированных тестах


В процессе создания автоматических тестов часто возникает необходимость в навигации между окнами браузера.

Основное неудобство в построении шага заключается в том, что web-драйверы webkit и selenium  отличные друг от друга механизмы переключения между окнами - то, что работает для webkit, не будет работать с selenium, и наоборот.

Следующий шаг позволит вам переместить фокус действия с одного окна на другое, учитывая используемый web-драйвер. 

When (/^I access the new window$/) do 
 if Capybara.javascript_driver == :webkit
  page.driver.browser.window_focus(page.driver.browser.window_handles.last)
 else
  page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)
 end
end

В ходе выполнения теста мы производим шаг, в следствие которого появляется новое окно. Следующим шагом станет описанный выше шаг "I access the new window".

В зависимости от выбранного при запуске теста web-драйвере выполнится один из вариантов переключения фокуса.

Для драйвера webkit - переключение фокуса происходит при помощи действия:
page.driver.browser.window_focus(page.driver.browser.window_handles.last)

Для драйвера selenium - следующее действие:
page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)



7/30/2013

Cucumber и взаимодействие с iframe

 

Шаг Cucumber для взаимодействия с <iframe>, используя Capybara.


<ifame> должен иметь заданный атрибут name, с которым будет работать шаг.

When I press "Foo" in the iframe "myframe"
Then I should see "Bar!" in the iframe "myframe"

Then /^(.*) in the iframe "([^\"]+)"$/ do |step, iframe_name|
  browser = page.driver.browser
  browser.switch_to.frame(iframe_name)
  step(step)
  browser.switch_to.default_content
end

Найдено тут