Привет, сообщество!
Я хочу поделиться с вами видеоуроком: “Как начать писать UI тесты за 10 минут”. В видео создаётся проект на Maven и пишется тест, который открывает браузер и проверяет поиск Google.
Очень часто в форумах задаётся этот вопрос: как научиться писать тесты? С чего начать? Как написать первый тест на Selenium?
Вот наконец есть короткий ответ. Конструктивная критика приветствуется.
P.S.: проект очень классный, крутой, автор проделал огромнейшую работу, спасибо!
Это лично мое мнение, и если я что-то не правильно понимаю, то поправьте меня.
Спасибо!
Действительно, размер коммьюнити и коммитеров стоит учитывать при выборе фреймворка. Но в данном случае все эти опасения напрасны, ибо Selenide - всего-навсего надстройка над Selenium WebDriver. То есть абсолютно все функции и новые возможности, которые есть в Selenium, можно свободно использовать и с Selenide. Никаких ограничений. Selenide просто добавляет несколько полезных функций. Если эти функции не понравятся или устареют - всегда можно использовать стандартные селениумовские. Так что риск нулевой, можно не беспокоиться.
Спасибо, возник еще один вопрос.
Я хочу иметь такую возможность, как зафиксировать версию slenide, к примеру 2.14, и через пол года, когда webdriver уйдет далеко вперед, к версии 2.49.0 или даже еще больше, по прежнему использовать старую версию selenide. При условии, что расположения классов и пакетов, которые нужны для работы selenide в webdriver, остались прежними.
Как я себе это представляю. По средствам в POM.XML
есть ли примеры больших проектов, в открытом доступе, чтоб посмотреть как можно использовать selenide с общепринятимы паттернами проетирования в тестировании
Это то же самое, что спросить сороконожку, по какому паттерну она переставляет ноги Да я никогда даже не задумывался об этом. Да, похоже, названные шаблоны используются в Selenide. Возможно, ещё какие-то. Ну а какая разница? Зачем вы это спрашиваете? Не забивайте вы себе голову этими шаблонами.
Мне фреймворк нравится, все что написано и рассказано у меня вызывает только “теплые чувства” если это можно так назвать.
Но…
Если я начинающий тестировщик, и только начинаю писать тесты, изучать webdriver, то меня вся это простота только запутает и когда нужно будет более тонко настроить webdriver то я просто не пойму где это сделать.
Если я “матерый” тестировщия то я скажу класс, но я напишу свой “велосипед”, зачем мне разбираться в чужом, я напишу свой конкретно под свой проект под свои нужды, со своими отчетами итд.
я не имею ничего против selenide, просто хочу ответить на вопрос:
Почему я могу использовать selenide на своих проектах? Какие есть ограничения и когда я их достигну?
Привет! Спасибо за вопросы. Вопросы понятны, попробую ответить.
“почему не могу использовать Selenide в своём проекте” - честно, не могу придумать ни одной причины. Можете.
“какие есть ограничения” - да практически никаких. Все методы Selenide можно переопределить, все методы из голого Selenium можно использовать.
“меня вся эта простота только запутает” - очень распространённое мнение. А почему вас не пугает простота JUnit или TestNG? А простота Java? А давайте все тесты писать сразу на ассемблере, чтобы не пугаться простоты? Давайте тогда уж и компьютеры выбросим , будем на счётах работать? Человечество совершает прогресс, Selenide - это часть прогресса. Сядете в первый вагон или сойдёте на предыдущей станции?
“Я напишу свой велосипед” - ещё более распространённое мнение. Это от того, что людям интереснее строить свои велосипеды, чем решать реальные задачи бизнеса, за которые им на самом деле платят деньги. Я понимаю это желание - сам такой - но для бизнеса оно вредное. Во-первых, это мнение строится на неправильном предположении, что “я напишу быстро, чего там писать-то”. Первую версию действительно быстро, но потом потихоньку начнёт вскрываться так много нюансов, что на их изучение и исправление уйдёт масса времени, которое могло бы быть потрачено с пользой. И в третьих - “под свои нужды”. Людям нравится думать, что у них уникальные нужды. А на самом деле “времена всегда одинаковые”. В Selenide вложены, помимо строчек кода, лучшие практики, накопленные нами за годы работы в программировании и автоматизации. Если чего-то в Selenide нет - это скорее всего потому, что этого и не стоит делать. Если Selenide не подходит под ваши нужды - это повод задуматься: может, у вас неправильные нужды . Это как Apple знает лучше вас, какой дизайн для Вас лучше, а JetBrains знают лучше вас, как должна вести себя Ваша IDE.
Ну, или мы тупо не успели сделать - тогда эта проблема решается проще всего…
Андрей, здравствуйте! Подскажите пожалуйста, у меня появилась необходимость устанавливать плагин на хром перед прохождением теста, это нужно делать каждый раз при создании нового инстанса браузера, какие есть удобные способы сделать это в Selenide? На чистом вебдрайвере я просто пишу что-то такое:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
WebDriver driver = new ChromeDriver(options);
ЗЫ: Кстати, хочу вас похвалить - я был на Selenium Camp 15, вы там были лучшим докладчиком как по части качества материала, так и по подаче, так держать )
Нет, медленный именно старт вебдрайвера с этими опциями - в консоли висит Starting ChromeDriver v2.14 и так продолжается минута-полторы, затем открывается браузер и идёт тест как обычно, т.е. это еще до всяких ожиданий. Не понимаю почему так происходит, в аналогичный же тест на C# стартует почти моментально.
К сожалению не могу, так как плагин внутренний и связан с секьюрностю, часть продукта который мы разрабатываем. Вряд ли он может быть корявый. Решение, однако, я нашел - оказывается, если загружать плагин распакованным, всё работает быстро.
Запакованным он весит чуть менее 4 мегабайт, распакованным 8.6 мегабайт, файлов в нём 20. Вроде бы не такие уж и большие цифры, но разница в скорости запуска очень серьезная.
Андрей, у вас в Selenide Wiki сказано, что нет необходимости закрывать браузер явно, Selenide позаботиться об этом сам, однако в моем случае, браузер закрывается только в том случае, если тест отработал без ошибок, если же он зафейлился или произошла другая ошибка, то браузер не закрываются, в чём может быть проблема?