Selenium: от инструмента к стандарту

    Инструмент Selenium медленно, но неуклонно продолжает развиваться, постепенно превращаясь в стандарт автоматизации веб-приложений и даже проникая в область автоматизации мобильных приложений (в том числе нативных и гибридных).

    Осенью 2013 года я дважды на конференциях (сначала SECR, потом ConfeT&QA) рассказывал о том, как происходило развитие инструмента Selenium и каково текущее состояние дел. Предлагаю вашему вниманию запись, сделанную на второй из упомянутых конференций.





    Краткое содержание (с таймингом):

    00:00 — представление
    01:15 — пара вводных слов о стандарте W3C WebDriver
    01:53 — обзор подходов к автоматизации веб-приложений: «через HTTP» и «через браузер»
    03:13 — достоинства и недостатки подхода к автоматизации «через HTTP»
    05:13 — достоинства и недостатки подхода к автоматизации «через браузер»
    06:48 — обзор подходов к интеграции инструментов автоматизации с браузерами
    08:10 — два способа внедрения JavaScript в браузер — «спереди» и «сзади», их достоинства и недостатки
    09:28 — два способа выполения внедрённых команд в браузере — «push» и «pull»
    11:01 — протокол взаимодействия с браузером, история его возникновения и развития, стандарт W3C WebDriver
    13:11 — как стандартизация протокола решает часть недостатков подхода к автоматизации «через браузер»
    14:34 — архитектура интеграции с браузером Chrome
    15:28 — архитектура интеграции с браузером Opera (на движке Presto)
    15:53 — архитектура интеграции с браузером Internet Explorer
    16:27 — архитектура интеграции с браузером Firefox, сейчас и в будущем (проект Marionette)
    17:37 — вновь про стандарт W3C WebDriver
    18:06 — что делать со старыми версиями браузеров, в которых поддержки стандарта нет и не будет
    19:13 — headless-браузеры PhantomJS и SlimerJS как способ решения проблемы «медленной автоматизации»
    20:30 — Selenium Grid: распределенная архитектура как способ решения проблемы «медленной автоматизации»
    21:38 — облачные сервисы, предлагающие возможность запуска браузеров (Selenium Grid в облаке)
    • +27
    • 18,2k
    • 8
    Поделиться публикацией

    Комментарии 8

      0
      А какое будещее ждет Selenium?
        +3
        Провокационный вопрос. Конечно светлое :)
        Более конкретно:

        1) Год назад я делал на SQA Days доклад про это: Каким будет Selenium 3.0 и 4.0
        Если коротко, план захвата мира таков. Selenium постепенно превращается в стандарт, который сопровождается тестовым набором для проверки соответствия реализаций этому стандарту. Все производители браузеров реализуют этот стандарт. Все производители инструментов автоматизации (в частности инструментов автоматизации тестирования) переходят на использование этого стандарта, за счёт чего обеспечивается полноценная поддержка всех (стандартных) браузеров всеми инструментами тестирования, причём после выхода новой версии браузера уже сразу всё работает. Selenium как «продукт» полностью исчезает, остаются только стандарт и тесты.

        2) Если говорить про ближайшее будущее, то есть версию 3.0 — не так давно на хабре был перевод заметки Саймона Стюарта из официального блога Путь к Selenium 3.0
        Вкратце, версия 3.0 — это этап «очистки», будет полностью удалена старая технология RC (Remote Control), чтобы форсировать скорейший переход пользователей на новую технологию WebDriver, которая как раз закреплена в стандарте W3C. Новых фич не ожидается. И постепенно наращивается тестовый набор для стандарта.
        +2
        Вообще-то есть видео и твоего доклада на SECR-е, возможно оно дополнит этот твой конфеткуашный доклад.
          +1
          Вау, круто, спасибо! А на официальном сайте нет ссылок на видеозаписи в синем зале…
            +2
            Будет. Я планировал быстро смонтировать и опубликовать все, но на сьемках SECRа зафейлилось почти все, что только можно (перегрузили ноутбуки с скринкастерами, отвалились камеры крупных планов и микрофоны-диктофоны, потерял карту с записью общего плана…) в результате возни стало адово больше (тыщу слайдов пришлось прибивать руками…) и результатом не очень доволен, по многу раз переделывал, и свои четыре трека публикую, как обычно тут. Потом, если крупных косяков не найдут за месяц (ну или если nobody cares, зафиксирую и организаторы подошьют к себе).

            Кстати, из-за твоего доклада пришлось писать новый фильтр для AVISynth по обрезке черных краев у слайдкастов — у тебя первый случай использования полного черного цвета на слайдах, из-за чего предыдущее решение обрезало у твоих слайдов «верха»…
          +2
          Честно говоря, не понятно почему Microsoft возьмется за реализацию этого стандарта.
          Они давно и глубоко плюют на многие стандарты.
          Да и потом, как показала практика развития html5/ccs3 комитет w3c уже не является авторитетом.

          Кто-нибудь знает, есть ли headless драйвер для blink? Может быть PhatomJS пойдет вместе с blink-ом?
            0
            Если Microsoft не подпишется на это — ничего страшного, разработанный средствами открытого сообщества драйвер тоже неплох.

            С другой стороны, интерес к проекту они проявляют, но коммитить не могут — есть юридически-бюрократические сложности, которые уже целый год не удаётся решить. Если они будут разрабатывать драйвер браузера сами, возможно, эта организационная проблема будет решена.

            Внутри Microsoft отношение к стандарту неоднозначное. Конечно, разработчикам самого браузера это может быть и не очень нужно. Но есть подразделение, которое разрабатывает Visual Studio, в частности входящие в его состав средства автоматизированного тестирования, вот они как раз двумя руками за автоматизацию. Поэтому, надеюсь, будут лоббировать эту тему внутри компании.

            А вот с Safari реальная проблема, Apple не проявляет никакой заинтересованности и не делает никаких попыток поучаствовать в процессе.
              0
              PhatomJS построен на базе QtWebKit, поэтому правильный вопрос — как быстро Qt перейдёт на использование Blink и выпустит Qt WebEngine, это было анонсировано в сентябре 2013 года ([1]). Сразу после этого в мейл-листе PhantomJS появилось сообщение о том, что версия 2.0 будет использовать Qt WebEngine и по этому поводу откладывается до тех пор, пока этот самый Qt WebEngine появится ([2]). В декабре вышла версия Qt 5.2 ([3]), но в ней, увы, WebEngine пока не появился, по крайней мере официально не объявлено. Поэтому ждём.

              [1] blog.qt.digia.com/blog/2013/09/12/introducing-the-qt-webengine/
              [2] groups.google.com/d/msg/phantomjs/z_147Zj1l58/743OcR-bJHEJ
              [3] blog.qt.digia.com/blog/2013/12/12/qt-5-2-released-the-best-qt-yet/

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

            Самое читаемое