Статьи

Встреча пользователей Selenium в Google

Ранее на этой неделе я присутствовал на первом собрании Selenium User Group в кампусе Google в Маунтин-Вью. Это было отличное мероприятие, на котором многие из основных комментаторов были готовы представить и ответить на вопросы. У каждого докладчика было около 5 минут для выступления, и мы узнали много нового о самом проекте Selenium, о том, что будет в будущем, и о том, как Google стандартизировал Selenium в качестве своего предпочтительного инструмента тестирования интеграции.

Патрик Лайтбоди начал собрание, просматривая статистику проекта с красивыми графиками и тому подобным. Просто было слишком много цифр, чтобы записать их, поэтому, надеюсь, его слайды скоро будут опубликованы. Мне было приятно видеть, что Google снял на видео все мероприятие, так что скоро оно будет доступно онлайн. Я обновлю этот пост, когда это оно. Ниже приведены мои заметки с мероприятия.

Джейсон Хаггинс, инженер по тестированию в Google
Selenium, — это фреймворк для автоматизации тестирования. Некоторые люди злоупотребляют этим как макро инструмент. Есть две причины, по которым Selenium стал настолько популярным: он смог протестировать Ajax перед любым другим инструментом тестирования и позволяет проводить сквозное тестирование рабочих процессов. Selenium работает на любой платформе, с любым браузером и поддерживает множество языков. Возможно, что другие структуры, которые более сфокусированы, лучше. 4 продукта Selenium:

  • Селеновое ядро ​​(TestRunner)
  • Selenium IDE (для Firefox)
  • Селен пульт дистанционного управления
  • Selenium Grid

Пол Хаммант, менеджер открытого исходного кода в Thoughtworks
Selenium 1.0 — бета на этой неделе. RC, Core, Grid и IDE вместе. 1.0 будет отправлен через несколько недель. По сравнению с сегодняшним днем, убито много ошибок, улучшена документация и значительно улучшена Selenium IDE.

Selenium 1.1 будет отправлен через пару месяцев. Selenium IDE будет улучшен, чтобы подчиняться инструкциям RC … и станет лучшим режимом работы, когда он будет доставлен.

Некоторые экспериментальные возможности iPhone-Safari (зависит от SDK для iPhone).

Надеемся, что Selenium 2.0 выйдет в этом году. Обвалять в из WebDriver функциональности и кода. Новый API на основе моделей. Плагин IE и плагин Safari (не совсем плагин, скорее всего, использует AppleScript).

Филипп Ханригу ( http://ph7spot.com )
Тестирование это хорошо! Селен это круто! Однако сквозное веб-тестирование идет медленно . Это и всегда будет медленным. Как вы решаете эту проблему? Вы решаете это так же, как мы решали медленный трафик в прошлом — создавая больше полос движения. Selenium Grid позволяет тестировать не один браузер, а несколько каналов и 20 браузеров. Особенности включают в себя:

  • Быстрая сборка, быстрая обратная связь!
  • Простота установки и повседневного использования
  • Не нужно менять свои тесты
  • Используйте вашу существующую вычислительную инфраструктуру

Одна из лучших частей Selenium Grid — вы можете скачать ее и запустить за 10 минут или меньше. Selenium Grid поставляется с поддержкой Amazon EC2.

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

Плохая новость в том, что Google раздвигает границы Selenium. Использование Selenium (RC + Core) в таких масштабах выявило некоторые проблемы, которые изначально не предполагались столь значительными. Медлительность IE / XPath имеет большое влияние, учитывая, что может выполняться только один тест за один раз. Тесты могут вызвать много условий, из которых RC не может легко или автоматически восстановиться (например, тесты, которые не вызывают stop () на каждом пути выхода). Неожиданные диалоги браузера, всплывающие окна и т. Д. В конечном итоге вызывают исключения тайм-аута.

Google ожидают, что RC будет работать по большей части, но они хотят, чтобы он был более надежным, с лучшей производительностью. Итак, они имеют:

  1. Созданы служебные методы для повышения производительности при проверке больших таблиц, наложении доменных языков и т. Д.
  2. Развернутые политики повторов на основе причины сбоя.

Заглядывая в будущее — Google еще не достиг ожидаемого использования Selenium RC. Некоторые проекты не могут использовать ферму, пока RC не поддерживает настройку на уровне сеанса (не на уровне сервера). Многие просто хотят, чтобы RC был более надежным. Так что Google будет:

  1. Продолжать вносить свой вклад в RC, Core и созданные пользователем вспомогательные библиотеки.
  2. Продолжайте так до тех пор, пока все неудачные тесты не станут ошибкой Selenium.

Дейв Астелс, Google (Driving Selenium с RSpec)
Используя RSpec, вы можете создать очень простую для чтения историю со сценариями, которую может прочитать (и, вероятно, написать) практически любой человек. Затем Дейв использует небольшой скрипт для загрузки историй и запуска их в Selenium. Когда он запускает сценарий, сценарий выкладывается и тестирует информацию о том, как пройти / не пройти. Узнайте больше на rspec.info .

Алекс Чаффи, Безумный ученый из Pivotal Labs (проект Selenium / Ruby, который не должен называться)
Что такое полоний? Он также известен как Selenium RC Fu или Selenium On Rails 2 или Funkytown. Он имеет простые расширения для Selenium RC:

  • ждать
  • утверждения элемента
  • запуск / управление серверами локально

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

Дэн Фаулих, старший инженер QA в Redfin Corporation (Как не запускать успешный проект с открытым исходным кодом)
Первое, что вы не хотите делать, это поддерживать все . Второе, что вы не хотите делать, это написать свой проект на JavaScript. Хотя замечательно, что почти каждый может взломать его, работать в песочнице — отстой Не используйте язык, связанный ограничениями безопасности других людей. Не катите свое собственное многоязычное удаленное взаимодействие. Он написан с использованием XML + XSLT, и ему так больно, что Дэн — единственный, кто исправляет ошибки.

Shinya Kasatani, разработчик Selenium IDE
Selenium IDE — это расширение Firefox, которое может записывать и воспроизводить тесты в вашем браузере. Он может переводить записанные тесты на многие языки.

В Selenium IDE 1.0 добавлена ​​поддержка TestSuites. Еще одна новая функция — улучшенные функции записи — она ​​обнаруживает изменение DOM. У Шиньи есть демонстрационная версия, в которой он использует новую среду IDE для тестирования тестовой страницы Dojo Dijit Theme. Видимо, это не работает в текущей версии.

Цель Selenium IDE — привлечь больше людей к автоматизации тестирования веб-приложений и помочь их проектам быть успешными.

Хо-бин Чай, разработчик в CommerceHub
XPath — это мощный выбор, но было бы здорово, если бы мы могли использовать что-то вроде «статьи 5» вместо загадочного синтаксиса // table [5] / tbody / ….

Почему UI-Элемент? Традиционные места могут быть ужасными, и они не передают цели. UI-Element является расширением Selenium Core и имеет интеграцию с Selenium IDE. Он написан на 100% JavaScript. Примеры:

ui=frontPage::topStoriesCountry()
ui=listingPages::article(index=5)
ui=listingPages::articleSource(articleIndex=1)

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

Саймон Стюарт о веб-драйвере
Что такое веб-драйвер? Одна из главных проблем с Selenium — он написан на JavaScript и его слишком легко взломать. WebDriver — это идеализированный браузер, который позволяет вам выполнять в браузере такие вещи, как вызов get (URL), findElement (By.xpath ()) и getTitle (). WebDriver похож на Selenium RC, но он написан не с использованием JavaScript. Он написан на родных языках для каждого браузера, что позволяет вам выйти из Jail Jail. Драйвер IE написан на COM (C ++). Драйвер Firefox написан как расширение Firefox. Safari использует события Apple.

Скоро не будет проекта WebDriver … потому что он будет частью Selenium!

Скорее всего, WebDriver не станет частью ядра до Selenium 2.0 в конце этого года. Одна из приятных особенностей WebDriver — вы можете использовать разные браузеры. Он поддерживает все основные браузеры, а также HtmlUnit с отключенным JavaScript.

Я прекрасно провел время, узнав больше о Selenium и о том, как большинство его проблем будет решено в ближайшем будущем. Google стандартизировал Selenium для тестирования веб-интеграции. Как вы думаете, ваша компания последует этому примеру?

Обновление: видео этого события были размещены .