WatiN или Selenium?

Я собираюсь начать кодирование некоторых автоматических тестов нашей презентации в ближайшее время. Кажется, что каждый рекомендует WatiN и Selenium, Что вы предпочитаете для автоматического тестирования веб-форм ASP.NET? Какой из этих продуктов работает лучше для вас?

В качестве побочного примечания я заметил, что WatiN 2.0 был в CTP с марта 2008 года, это что-то беспокоит?

Ответ 1

Просто хочу сказать, что я сейчас много работаю над бета-версией WatiN 2.0 где-то в первом квартале 2009 года. Это будет серьезное обновление до нынешних версий CTP 2.0 и в основном предоставит вам те же функции для автоматизации FireFox и IE как версия 1.3.0 предлагает для автоматизации IE.

Так что проблем нет.

Надеюсь, что это поможет сделать ваш выбор Jeroen van Menen Lead dev WatiN

Ответ 2

Если вы хотите сделать серьезные долгосрочные инвестиции в рамки, которые будут по-прежнему улучшаться и поддерживаться сообществом, Selenium, вероятно, будет вашим лучшим выбором. Например, я просто наткнулся на эту информацию в блоге Мэтта Райффа:

По состоянию на пятницу у Google более 50 команд тестирование более 51 тыс. внутренняя ферма селена. 96% этих тесты обрабатываются Selenium RC и Сельскохозяйственные машины правильно. Другой 4% частично связаны с ошибками RC, частично для проверки ошибок, но причина может быть сложной. Селен имеет были приняты в качестве первичной технологии для функционального тестирования сети приложений в Google. Что хорошие новости.

Недавно я также познакомился с одним из селенских собраний и узнал, что Google вкладывает серьезные ресурсы в совершенствование Selenium и интегрирует его с WebDriver, который является автоматизированным инструментом тестирования, разработанным Саймоном Стюартом. Одним из основных преимуществ WebDriver является то, что он управляет самим браузером, а не работает в браузере как приложение Javascript, а это означает, что основные камни преткновения, такие как проблема с одним и тем же источником, больше не будут проблемой.

Ответ 3

Мы тестировали обоих и решили пойти с WaTiN. Как отмечают другие, у Selenium есть некоторые приятные функции, не найденные в WaTiN, но мы столкнулись с проблемами, когда Selenium работал, и как только мы это сделали, было заметно медленнее при тестировании, чем WaTiN. Если я правильно помню, проблемы с установкой, с которыми мы столкнулись, проистекали из того, что у Selenium было отдельное приложение для управления фактическим браузером, где WaTiN выполнял все в процессе.

Ответ 4

Я пытаюсь их обоих и вот мои первоначальные мысли...


WatiN

Хорошее

  • Быстрое выполнение.
  • Script Инструменты создания - это независимые проекты; есть 2, о которых я знаю: Wax (на основе Excel, размещенном на CodePlex) и WatiN Test Record (размещен на SourceForge). Не так же надежна, как Selenium IDE.
  • Очень хорошая поддержка IE. Может подключаться и отсоединяться к/из запущенных экземпляров. Можно получить доступ к ручным окнам и т.д. (См. Ниже пример script).
  • NuGet упакован, легко работать в среде .NET, среде Visual Studio и постоянно обновляться.

Плохой

  • Googling WatiN (watin xyz) часто заставляет Google рекомендовать "watir xyz". Не так много документации.
  • Что мало (документация), это запутанно; например: сначала краснеть, казалось бы, нет встроенной поддержки CSS-селекторов. Тем более, что существуют библиотеки расширений, такие как "WatiNCssSelectorExtensions" и многие статьи блога об альтернативных методах (например, впрыскивание jQuery/sizzle на страницу). On Stack Overflow, я нашел комментарий Jeroen van Menen, в котором говорится, что есть встроенная поддержка. По крайней мере, ведущий разработчик тратит время на переполнение стека:)
  • Не поддерживается родной XPath.
  • Отсутствие удаленного запуска/выполнения на основе сетки.

Script Пример (С#). Вы не можете сделать это с Selenium (не то, что я знаю, по крайней мере):

class IEManager
{
    IE _ie = null;
    object _lock = new object();

    IE GetInstance(string UrlFragment)
    {
        lock (_lock)
        {
            if (_ie == null)
            {
                var instances = new IECollection(true);  //Find all existing IE instances
                var match = instances.FirstOrDefault(ie=>ie.Url.Contains(UrlFragment));
                _ie = match ?? new IE();
                if (match==null)  //we created a new instance, so we should clean it up when done!
                    _ie.AutoClose = true;
            }
        }

        return _ie;
    }
}

Селен

  • Медленнее, чем WatiN (тем более что новый процесс должен быть создан).
  • Встроенные селектора CSS/поддержка XPath.
  • Selenium IDE хороша (не могу сказать, отлично, но это лучший в своем классе!).
  • Чувствуется больше Java-ish, чем .NET-ish... но на самом деле, это язык программирования неактивный; все команды отправляются во внеурочный "Драйвер". Драйвер действительно является "хостом" для экземпляра браузера. Вся коммуникация должна быть сериализована в/из границ процесса, что может объяснить проблемы скорости относительно WatiN.
  • Развязанные процессы - "Драйвер" и "Контроль" означают большую надежность, большую сложность и т.д., но также легче создавать сетки/распределенные тестовые среды. Было бы очень понравилось бы, если бы механизм распределения (т.е. Связь между драйвером и элементом управления) находился через WebSphere или другой существующий, надежный диспетчер очереди сообщений.
  • Поддержка хром и других браузеров из коробки.

Несмотря на все, я пошел с WatiN в конце; Я в основном намерен писать небольшие приложения для скрининга экрана и хочу использовать LINQPad для разработки. Прикрепление к удаленному экземпляру IE (тот, который я не создавал) - большой плюс. Я могу поиграть в существующем экземпляре... затем запустить немного script... затем снова заиграть и т.д. Это сложно сделать с Selenium, хотя я полагаю, что "паузы" могут быть встроены в script во время в который раз я мог играть прямо с браузером.

Ответ 5

Самое большое различие заключается в том, что Selenium поддерживает разные браузеры (не только IE или FF, см. http://seleniumhq.org/about/platforms.html#browsers.

Кроме того, у Selenium есть сервер удаленного управления (http://seleniumhq.org/projects/remote-control/), что означает, что вам не нужно запускать браузер на то же, что и тестовый код. Поэтому вы можете проверить свое веб-приложение. на разных платформах ОС.

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

Ответ 6

Ни. Используйте Coypu. Он обертывает селен. Гораздо более прочный. https://github.com/featurist/coypu

Обновление Вы, Оливер, правы. Хорошо, почему это лучше? Лично я нашел, что драйвер Selenium для IE, в частности, очень хрупок - существует ряд "стандартных" исключений для драйвера, которые я снова нашел, когда ездил на Selenium для Unit Tests на тяжелых веб-сайтах ajax.

Я упоминал, что хочу написать свои скрипты в С# в качестве тестового проекта? Да Приемочные испытания в рамках непрерывного развертывания сборки.

Ну, Coypu имеет дело с вышеизложенным. Это обертка для Selenium, которая позволяет тестировать приборы, такие как

browser.Visit("file:///C:/users/adiel/localstuff.htm")
browser.Select("toyota").From("make");
browser.ClickButton("Search");

... который запустит браузер (настраиваемый бренд) и запустит script. Он отлично работает с областями области и ОЧЕНЬ расширяем.

Там больше примеров в GitHub и как Olvier ниже, видео Adrian превосходно. Я считаю, что это лучший способ управлять тестами на базе браузера в мире .Net и пытается следовать за ним. Рубиновый тезка capybara

Ответ 7

Я использовал оба, оба они работают нормально. Мой кивок для Selenium, поскольку у него, кажется, была лучшая поддержка Ajax. Я считаю, что WaTiN созрел, хотя с тех пор я использовал его, поэтому он должен иметь то же самое.

Самое главное, с какой средой разработки вы хотите быть? У Selenium и Watin есть рекордеры, но Selenium находится в браузере, а watin - в визуальной студии. + и - для обоих.

Ответ 8

До сих пор мы являемся чистым магазином Microsoft для доставки решений для предприятия и с WatiN. Это может измениться в будущем.

Как более свежий источник:

Microsoft напечатано в Журнал MSDN 12/2010 BDD-Primer с комбинацией SpecFlow с WatiN (классная разработка BDD-Behavior Driven Development). Его автор Брэндон Сатром (msgan Developer Evangelist) также опубликовал в декабре 2010 года Видео Веб-трансляция, в которой подробно описываются 1:1 его выводы.

Существует Whitepaper от 04/2011 по поддержке ATDD/BDD с помощью SpecLog, SpecFlow и Team Foundation Server (разработка приемочного тестирования/разработка, управляемая поведением) от Christian Hassa, команда которого построила SpecFlow.

Ответ 9

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

Ответ 10

Я использую Watin, но не использовал Selenium. Я могу сказать, что я быстро встал и побежал к Ватину, и у меня было мало проблем. Я не могу думать ни о чем, что хотел бы сделать, что я не мог понять. НТН

Ответ 11

Я рекомендую WebAii, так как с этим я добился успеха, и при использовании его у меня было мало. Я никогда не пробовал Selenium, и я не помню, чтобы использовать WaTiN много, по крайней мере, до такой степени, что я мог бы заставить его успешно работать. Я не знаю какой-либо структуры, которая имеет дело с диалоговыми окнами Windows изящно, хотя WebAii имеет интерфейс для реализации ваших собственных обработчиков диалоговых окон.

Ответ 12

Я рассмотрел использование обоих. Я использовал рекордер для Selenium для создания некоторых тестов в FF. Я попытался сделать то же самое в Watin и обнаружил, что Watin Recorder (2.0.9.1228) совершенно бесполезен для наших сайтов. Похоже, что это был сайт IE6, что делает наш сайт непригодным для записи. Мы не поддерживаем IE6. Я не мог найти способ изменить браузер, который он использует. Я нашел только один Watin Recorder. Если есть несколько или один, который обновляется, прокомментируйте.

Selenium Recorder IDE для Firefox прост в использовании, а порты - на С#. В этом нет ничего хорошего. Я не мог заставить переносные тестовые комплекты работать, несмотря на то, что читал сообщение в блоге или два, у которых были обходные пути. Так что немного манипулирования сгенерированным кодом. Тем не менее, он работает на 90% и лучше, чем альтернатива.

Для моих денег/времени Selenium превосходит простоту для создания новых тестов. У IE нет хороших панелей инструментов разработчика, которые находятся где-то рядом с Firebug, поэтому я начинаю разработку в Firefox, поэтому, имея хороший рабочий рекордер в Firefox, огромный бонус,

Мой вывод здесь был очень похож на цитату из цитаты Черчилля: Selenium - худшая форма автоматического тестирования пользовательского интерфейса. Кроме всех остальных.

Ответ 13

рискуя уйти по касательной, я бы рекомендовал Ax/WatiN. Axe позволяет тестировать тесты в Excel с помощью тестеров "Manual" без знания языка теста. Ему нужен "Техник" для написания сделанных на заказ действий (IE. Сегодня мне пришлось сделать несколько сложный поиск в таблице и перекрестную ссылку), но после написания действия могут быть использованы в тестах нетехническими тестерами.

Я также слышал, что проект британского правительственного шлюза (который, как я считаю, прошел тесты на тесты 6K +), недавно перенес все тесты от Ax/Winrunner на Ax/Watin в течение недели!! И многие из тестов довольно сложны - я знаю, как я работал над этим несколько лет назад...

Я смотрю на Selenium на данный момент, поскольку потенциальный Клиент использует его. Но я действительно предлагаю взглянуть на топор как слой над инструментом "рабочая лошадь".

Ответ 14

Если вам нужно получить доступ к iframes, модальные диалоги и междоменные iframes WatiN - это путь. Selenium не смог обработать фреймворки, из-за которых были исключены исключения из командной строки. WatiN вы могли бы сделать гораздо больше вещей, особенно если на сайте используются теги IE, такие как ShowModalDialog и т.д. WatiN отлично справляется с ними. Я мог бы даже сделать перекрестный доступ к домену iframe.

Ответ 15

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