Огурец/Капибара против селена?

На днях я показывал одному из тестировщиков в моей компании несколько тестов, которые я написал в огурце (2 функции, 5 сценариев). Затем он спросил меня, что я не могу ответить:

Как это лучше, чем селен или любой другой инструмент для тестирования тестовой функции?

Я понимаю, что огурец - это другая технология, и он находится на другом уровне тестирования, но я не могу понять, почему я должен беспокоиться о том, чтобы писать и поддерживать тесты огурца /Capybara.

Может ли кто-нибудь дать мне разумное объяснение использованию Огурца/Капибары вместо просто Селена?

4 ответа

Этот вопрос является пограничным, требующим мнения. Ваш вопрос на самом деле читает мне: "Какой инструмент подходит мне?" Я говорю это, потому что вы не даете причины, почему вы выбрали Огурец и Капибару. Я считаю, что отвечу на этот вопрос тестера, сначала вам нужно ответить на несколько вопросов:

1.) На каком этапе процесса вы собираетесь писать эти тесты?

Огурцы могут не быть подходящим выбором для модульных тестов, в зависимости от языка, который вы используете. Но он может использоваться для любого уровня тестирования, от единицы до интеграции с конечным пользователем.

2.) Кто будет поддерживать ваши тесты? Вы? Другие разработчики? Тестеры? Бизнес-аналитики? Менеджеры проекта?

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

3.) Кто будет определять новые тесты?

Огурец предназначен для совместного использования между разработкой, качеством и владельцами бизнеса. Это идеальный инструмент для использования всех знаний в процессе автоматизированного тестирования. Однако это требует развития вездесущего языка. Вы можете прочитать об этом на странице Джеймс Шор Арт Айджил".

После того, как вы ответили на эти вопросы, вы готовы обратиться к тестеру.

Тем не менее, есть несколько моментов, которые следует учитывать при сравнении инструментов записи (таких как Selenium IDE, HP Quick Test Pro, IBM Rational Functional Tester) по сравнению с инструментами разработки (nUnit, jUnit, RSpec, Selenium webdriver, Capybara ) заключается в том, что они ориентированы на разные аудитории. У них также есть разные плюсы и минусы.

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

Средства разработки имеют более широкую кривую обучения и требуют программирования (или, по крайней мере, для сценариев). Сценарии, как правило, более надежны, но требуют дополнительных технических знаний для поддержания. Они являются хорошим решением, когда вы хотите повторимости и планируете использовать тесты в течение длительного времени.

Я настоятельно рекомендую вам прочитать The Cucumber Book. Это действительно поможет вам решить, подходит ли вам Огурец.


Огурец - это не только инструмент для тестирования. Кроме того, тестирование функций Cucumber также играет роль документации, механизма взаимодействия с заинтересованными сторонами и хранения требований (если вы пишете их в декларативном стиле).

Вам не нужно использовать огурец с Capybara. Вы можете использовать селен напрямую. Но Capybara имеет тот же API высокого уровня для всех поддерживающих драйверы. Это более высокий уровень, чем Selenium, и позволяет писать тесты немного быстрее. Вам не нужно менять код при переключении с одного драйвера на другой.

Тесты, созданные с использованием инструментов тестовой записи, как правило, намного хуже. Selenium IDE может выдавать действительный программный код, но он не выглядит красивым и, следовательно, тихим, трудно поддерживать.


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

Использование инструментов записи не принесет вам пользы в долгосрочной перспективе. Они предназначены для начинающих и не настолько мощные, поэтому я рекомендую вам перейти прямо к кодированию.

Вы можете использовать только Selenium для своих тестов, но я бы порекомендовал вам продолжать использовать Cucumber для целей документации, если вы найдете их полезными и удобными для работы. В конце концов, Cucumber может использовать Capybara или веб-драйвер Selenium.


Selenium ide хорош для тестирования функций, которые имеют в основном визуальные элементы (ссылки, текст и т.д.). Но часто веб-приложения имеют функции, которые не представляют собой визуальные элементы, такие как отправка писем, задание в очереди, общение с сторонними службами и т.д. Вы можете, например, проверить, отправлено ли сообщение "Отправлено по электронной почте" после представляя форму. Но на самом деле это не говорит вам, действительно ли отправлено электронное письмо, и поэтому вы на самом деле не проверяете всю функцию здесь.

licensed under cc by-sa 3.0 with attribution.