Путь к Selenium 3.0

Selenium 2 был выпущен в июле 2011 года. Прошло уже два года, но какие это были два года! Интеграция с WebDriver API-интерфейсами, которые были важным дополнением в Selenium 2, в настоящее время являются основой для стандарта W3C, изменения, написаные при поддержке Google, Mozilla и Opera. Было сделано 34 релиза, с официальной поддержкой Java, C#, Python, Ruby и JavaScript, и благодаря нашему сообществу написаны привязки для Perl, PHP и других языков. Изменения в коде вносились 57 различными авторами и еще множество других учавствовало в интернет-форумах, предлагая помощь и советы.

Пока все это происходило, мир изменился, и теперь пришло время для проекта Selenium смотреть дальше в будущее. И с большим удовольствием я теперь могу сказать, что мы работаем в направлении Selenium 3.

Мы стремимся к тому, что бы Selenium 3 стал «инструментом user-focused автоматизации мобильных и веб-приложений».

Что это значит? Для пользователей мобильных устройств, проект Selenium станет «хранилищем» набора тестов с улучшеным обеспечением совместимости между различными частями проеков, которые расширяются, что бы WebDriver API также справлялся с мобильными версиями. Разработчики из таких проектов, как Appium, ios-driver и selendroid помогают нам работать над этим.

Мы также работаем над изменением технологии, лежащей в основе Selenium, что бы улучшать её стабильность и «способности» насколько это возможно. Для этого из Selenium 3 будет удалёно первоначальное ядро, в том числе и RC API. Старые версии будут доступны для скачивания как отдельный продукт, но активное развитие прекратится, за исключением исправления срочных багов. Реализация RC API будет предоставляться, но при поддержке WebDriver, так что вы можете продолжить запуск ваших существующих тестов, но сейчас самое время, чтобы сделать шаг к использованию WebDriver API напрямую.

Для тех же из вас, кто экспортирует тесты из IDE и запускает HTML-сьюты, мы предоставим альтернативный runner, который позволит продолжить запуск этих тестов тоже, однако он также будет основан на «WebDriver –ской реализации RC» и предлагаться для основной загрузки. Опять же, оригинальная реализация будет доступна для загрузки, но это больше не будет активно разрабатываемый продукт после выхода версии 3.0.

Сейчас мы планируем выпустить Selenium 3.0 к Рождеству (прим. переводчика: католическому) этого года: обещаю, это будет весело!

Оригинал статьи был опубликован в Official Selenium Blog
Share post

Similar posts

Comments 18

    0
    Selenium великолепен. Единственный напрягающий момент — скорость работы.

    Запустил тесты — пошел курить или пить чай. Это слегка отпугивает от частого запуска тестов.

    Хотя, дело может быть в том, что я тестировал его на нетбуке с AMD E-450, 2x1.6GHz. Хочу позже попробовать его на чём-нибудь мощнее.
      +1
      Причин может быть много, в любом случае Selenium не может работать быстрее чем отвечает сервер, у нас в проекте сервер как раз и является узким местом когда натравливливаешь на него Selenium-тесты хотя бы в 8-10 потоков. Приходится оптимизировать сами тесты, переиспользовать сущности в БД и т.п.
        0
        Может быть. Я гонял тесты над проектом, развёрнутым на локальной машине. Так что, скорее всего, всё упирается именно в производительность системы и железа. Сам проект, правда, тоже не был идеалом производительности, но отвечал довольно шустро.
        0
        Запустил тесты — пошел курить или пить чай. Это слегка отпугивает от частого запуска тестов.

        Похоже, появилась программерская отмазка #2.

          0
          Когда оплата зависит от того, сколько ты успел сделать — отмазки отпадают сами собой. И уже сам считаешь кропотливо каждую потраченную минуту.
            +1
            Видимо, минут остается мало даже для того, чтобы просто улыбнуться и воспринять юмор.
              –1
              Вы знаете, и пра… Стоп.



              На самом деле, я даже «плюсанул» ваш комментарий. Он этого стоил хотя бы за XKCD. =)

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

              Ещё из той же оперы: а что ты успеваешь сделать, пока течёт твой любимый кетчуп запускается твоя любимая IDE?
        0
        Selenium великолепен. Единственный напрягающий момент — скорость работы.

        Запустил тесты — пошел курить или пить чай. Это слегка отпугивает от частого запуска тестов.


        Учитывая, что Selnium-тесты эмулируют работу пользователя – то в сравнении с этим скорость работы WebDriver – значительно выше.

        И да, скорее всего тут все упирается в железо и скорость передачи по сети

        Но, еще очень важны и другие оптимизации, например:

        1. Не закрывать браузер после каждого теста
        2. Иногда применять JavaScript для получения той информации, которая посредством WebDriver получить долго

        Пример:
        Известно, что WebDriver работает по протоколу REST и HTTP, который сам по себе не самый быстрый (зато понятный и универсальный).
        Если мы попробуем найти все элементы на страницы, то REST вернет лишь ссылки на эти элементы, а не всю информацию целиком.
        Потом, если мы захотим вывести, например имя тэга и значение Displayed – то будет сделано по два HTTP запроса к серверу на каждый элемент.
        И это хорошо, если сервер развернут локально, а иначе – тормоза будут ощущаться очень сильно
          0
          1. Не закрывать браузер после каждого теста


          Да, я так и делал. И сервер с приложением развёрнут был локально.
            +1
            Хочу заметить, что вызовы JavaScript передаются через тот же REST интерфейс, так что прирост скорости местами будет сомнительный.
            P.S. Уточнение, за исключением когда приходится долго обходить дерево и атрибуты :)
              +1
              Зависит от ситуации, конечно.
              Если два вызова Вебдрайвера заменить на один JavaScript – то выигрыш будет действительно сомнительным.
              А вот если сотню на один – то вполне можно.
              Тут есть другое дело, что при такой оптимизации, решение на JavaScript может вызывать меньшее доверие и некоторые вызовы могут вести себя по иному, чем это делает реальный пользователь.
              В таких обстоятельствах нужно просто учитывать конкретную ситуацию и конкретный код

              Еще пример.
              На странице Линкедина есть блок добавления группы пользователей. У каждого пользователя есть своя кнопка «Добавить». Как показывает практика, один вызов на JQuery с «одновременным» нажатием всех кнопок работает на порядок быстрее и не портит конечный результат.

            0
            *промахнулся, не убивайте*
              +1
              А улучшения в работе с регулярными выражениями планируются?
                +1
                В статье ничего не говорилось, но надеяться можно.
                  0
                  Поясните свой вопрос, использование регулярных выражений где имеется в виду?
                    0
                    к примеру при использовании By.LinkText() или By.Id()
                      0
                      Нет, не планируются.
                      Вместо By.id используйте By.cssSelector с проверками $= ^= и другими подобными.
                      Поиск по регулярному выражению (и не обязательно ссылок, кстати) можете реализовать самостоятельно, механизм локаторов же не фиксированный.
                        0
                        Спасибо за ответ!

                Only users with full accounts can post comments. Log in, please.