Comments 24
Сколько у вас автоматических интеграционных тестов и как долго они выполняются?
Сейчас наша система находится в начале разработки, поэтому тестов немного, всго несколько штук, и работают они тоже быстро, порядка 10 секунд на тест при 10-20 шагах в тесте
При росте приложения и количества тестов все «плюсы» которые вы увидели в использовании Selenium IDE, канут в лету из-за необходимости постоянно перезаписывать тесты при минимальном изменении локаторов.
Не слогласен.
Во-первых, тесты это часть результата работы разработчика. Ведь никого не смущает, что приходится писать и поддерживать много кода.
Во-вторых, для того чтобы обуздать объем кода используются различные технологии, вроде библиотек и использования ООП. То же самое с тестами их не надо бездумно копипасить, надо с наименьшим кол-вом тестов затронуть наибольшее кол-во функционала.
В-третьих, поддерживать тесты могут и тестировщики, а SQL скрипты с данными для тестов будут меняться редко.
Так что плюсы все равно остануться, просто если ваше приложение большое и требует много тестов, которые сложно поддерживать, это не занчит, что если прогонять все тесты в ручную разработка пойдет быстрее с тем же уровнем качества.
Во-первых, тесты это часть результата работы разработчика. Ведь никого не смущает, что приходится писать и поддерживать много кода.
Во-вторых, для того чтобы обуздать объем кода используются различные технологии, вроде библиотек и использования ООП. То же самое с тестами их не надо бездумно копипасить, надо с наименьшим кол-вом тестов затронуть наибольшее кол-во функционала.
В-третьих, поддерживать тесты могут и тестировщики, а SQL скрипты с данными для тестов будут меняться редко.
Так что плюсы все равно остануться, просто если ваше приложение большое и требует много тестов, которые сложно поддерживать, это не занчит, что если прогонять все тесты в ручную разработка пойдет быстрее с тем же уровнем качества.
Во-первых, тесты это часть результата работы разработчика. Ведь никого не смущает, что приходится писать и поддерживать много кода.
Вам говорят что при использование рекодера, поддержка кучи тестов превращается в ад, а вы говорите что всё гуд и работать в аду это участь разработчиков. Мне жалко ваших коллег.
Во-вторых, для того чтобы обуздать объем кода используются различные технологии, вроде библиотек и использования ООП. То же самое с тестами их не надо бездумно копипасить, надо с наименьшим кол-вом тестов затронуть наибольшее кол-во функционала.
А ведь я тоже самое написал. Полагаясь на кодогенерацию Selenium IDE вы стреляете себе в ногу. Как правильно написал снизу marshinov, нужно писать такие вещи самому с использованием общепринятых паттернов.
В-третьих, поддерживать тесты могут и тестировщики, а SQL скрипты с данными для тестов будут меняться редко.
Ну я не знаю что сказать. Рекодить тесты может любой и это правда. Однако оправдано ли это? Это уже другой вопрос.
Так что плюсы все равно остануться, просто если ваше приложение большое и требует много тестов, которые сложно поддерживать, это не занчит, что если прогонять все тесты в ручную разработка пойдет быстрее с тем же уровнем качества.
Вот этого вообще не понял. Как это вытекло из моего сообщения загадка.
А вообще посмотрите на связку SpecFlow+WebDriver. При правильном использовании позволяет очень упростить написание тестов.
А вообще посмотрите на связку SpecFlow+WebDriver. При правильном использовании позволяет очень упростить написание тестов.
Использовали на одном проекте. Очень понравилось. Сейчас внедряю на новом месте работы.
Да, вы правы. Использование SpecFlow+WebDriver вместо записи действий в Selenium IDE серьезно сократит объем работы для разработчиков.
Это как раз и есть та техника, которая мне была нужна, для уменьшения объема работ по поддержинию тестов, спасибо за совет.
Это как раз и есть та техника, которая мне была нужна, для уменьшения объема работ по поддержинию тестов, спасибо за совет.
habrahabr.ru/post/178407/ посмотрите, описал подробно, может быть найдете что-то полезное
У нас было что-то около 200 (может больше — было давно и не правда) тестов. Они выполнялись 8 часов.
Чтобы этого избежать надо в разработческих и тестовых базах данных сразу поставить начальное значение для генератора идентификаторов в миллион или даже в миллиард.Можно ставить отрицательные значения.
Посмотрите на Selenium WebDriver
к сожалению в конфигурации с WebDriver есть следующий недостаток: если записать тест в Selenium IDE, и попытаться его экспортировать в C#, то многие шаги не будут экспортированы. Будет написано что-то вроде «Нет шаблона для экспорта». В таких случаях надо будет самому писать этот C# код, который так же надо отлаживать.
Я считаю что быстрый и уже протестированный создателями Selenium экспорт в C# для RemoteControl испольозовать лушче, несмотря на то, что придется запускать Remote control server
Я считаю что быстрый и уже протестированный создателями Selenium экспорт в C# для RemoteControl испольозовать лушче, несмотря на то, что придется запускать Remote control server
Не надо записывать сценарии. Ваши тесты «посыпятся», как только чуть-чуть изменится фронт-энд.
Надо состредоточиться на таких сценариях, чтобы они не сыпались сразу все, как только чуть-чуть изменится фронт.
Еще раз повторю: разработчики обожают и умеют писать код, который не сыпится, как толкь чуть-чуть что-то поменятеся. И тесты надо тоже проектировать с умом.
Еще раз повторю: разработчики обожают и умеют писать код, который не сыпится, как толкь чуть-чуть что-то поменятеся. И тесты надо тоже проектировать с умом.
Видимо, каждому свое. На многих проектах отказывался от записи, потому что когда тестов становилось много, их поддержка становилась адом.
Мы используем WebDriver c PageObjects, PageElements
Мы используем WebDriver c PageObjects, PageElements
Согласен, запись работает нормально только на очень малом количестве тестов. А дальше только создание подобия фреймворка, где элементы UI будут являться объектами и в случае изменения достаточно будет поменять только в одном месте, а не в паре сотен.
И еще, web driver более честное решение, так как он эмулирует действия пользователя и не может, к примеру, нажать на кнопку, которая под модальным окном, в отличие от remote control. Тем самым избежите ошибок, когда тесты отлично бегут, а реально это повторить нельзя.
У нас сейчас порядка 9000 селениум тестов и я не по наслышке знаю об этом.
И еще, web driver более честное решение, так как он эмулирует действия пользователя и не может, к примеру, нажать на кнопку, которая под модальным окном, в отличие от remote control. Тем самым избежите ошибок, когда тесты отлично бегут, а реально это повторить нельзя.
У нас сейчас порядка 9000 селениум тестов и я не по наслышке знаю об этом.
Как уже подсказал Elufimov, использование SpecFlow+WebDriver или WebDriver c PageObjects, PageElements как раз и есть способ правильной разработки тестов. Я думаю поправить статью и сразу указать на эти технологии вместо записи тестов в Selenium IDE.
После возвращения в мир .NET с Ruby on Rails.
БД: Code First + Migrations + Seeds
Acceptance Testing: NBehave(пока только начал) и сценарии login, select product описываются как функции и исспользуются для построения полного теста. Тогда в случее изменения локатора меняем только одно место, а не надцать. Проблема с логином, на after test вешаем LogOff.
Все что не версионируется и не в текстовом формате, аля бинарная база данных в топку и не должно лешать в сорс контроле и исспользоватся для развертывания.
Конечно работает только для новых проектов и немного радикально, зато после первоначальной настройки значительно легче.
БД: Code First + Migrations + Seeds
Acceptance Testing: NBehave(пока только начал) и сценарии login, select product описываются как функции и исспользуются для построения полного теста. Тогда в случее изменения локатора меняем только одно место, а не надцать. Проблема с логином, на after test вешаем LogOff.
Все что не версионируется и не в текстовом формате, аля бинарная база данных в топку и не должно лешать в сорс контроле и исспользоватся для развертывания.
Конечно работает только для новых проектов и немного радикально, зато после первоначальной настройки значительно легче.
CodeFirst шикарная штука, да, я в SQL уже и не лажу после того как освоил CodeFirst.
Опять же, позволяет отверсионировать изменения БД (особенно если комментировать коммиты в СКВ), загружать тестовые/боевые данные, откатывать схему табллиц.
Опять же, позволяет отверсионировать изменения БД (особенно если комментировать коммиты в СКВ), загружать тестовые/боевые данные, откатывать схему табллиц.
Расскажите подробнее или дайте ссылку, как испольовать CodeFirst (как я полагаю из EF) для того чтобы «загружать тестовые/боевые данные, откатывать схему табллиц.»
Вы не поверите, MSDN, первая ссылка в гугле msdn.microsoft.com/en-us/data/jj591621.aspx
Мне её хватило, в принципе.
Мне её хватило, в принципе.
Исправьте, пожалуйста, ошибки в слове continuous.
Sign up to leave a comment.
Автоматизированное интеграционное тестирование ASP.NET приложения