Как открыть несколько одновременных сеансов с огурцом, капибарой и селеном? - PullRequest
1 голос
/ 14 октября 2010

Я исправляю некоторые старые интеграционные тесты для нашего веб-сайта (RoR 2.3.5), и некоторые сценарии (и их поведение) зависят от одновременной регистрации нескольких пользователей. Когда-то они работали ... три инженера и 18 месяцев назад.

Наши базовые сценарии написаны на огурце с привязкой капибары к селену. Я перепробовал все варианты Capybara :: Session.new и open_session, которые я могу себе представить. Это либо программно успешно, но продолжает использовать существующее окно селена; или они приводят к тому, что какой-либо метод тестирования не существует.

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

Полностью ли я дошел до пословицы? Было бы здорово, если бы селен открыл несколько браузеров как несколько пользователей Unix, чтобы они не разделяли состояние сеанса, а затем зашел на сайт. Но я понятия не имею, куда бы я посмотрел, чтобы начать взламывать это.

Честно говоря, на данный момент, я даже не знаю, какие инструменты я использую, а какие отвечают за какую функцию. Погружение в код капибары и огурца дает сотни линий магии метапрограммирования, которые каким-то образом накапливаются в рамках тестирования. Это действительно заставляет меня ненавидеть TDD несмотря на мой предыдущий юношеский энтузиазм.

1 Ответ

5 голосов
/ 14 октября 2010

Попробуйте обновить до 0.4.0.rc. Selenium теперь позволяет выполнять несколько сеансов (которые запустят несколько браузеров, чтобы вы знали). Однако для него еще нет высокоуровневого API, поэтому вам нужно вручную создать экземпляр сеанса и работать с ним.

...