Если вы подумали о том, чтобы создать свой собственный фреймворк автоматизированного тестирования, подумайте еще раз. Другими словами, вы поступите правильно, обратив внимание на один или несколько доступных вариантов с открытым исходным кодом.
Фреймворк – это набор инструментов для ускоренной разработки сайта, нацелен на решение определенных задач. Говоря простыми словами, framework – это каркас, который состоит из множества различных библиотек, которые облегчают разработку программного продукта или сайта.
То есть фреймворк это набор из нескольких библиотек. В большинстве случаев, нет необходимости в создании “уникального” фреймворка, который будет подходить под вашу среду разработки. Вам просто нужен такой фреймворк, который помог бы Вам автоматизировать некий процесс.
Фреймворк должен быть:
- С возможностью повторного использования;
- С возможностью внесения изменений;
- Стабильным.
Существуют такие команды разработчиков, которые используют эти качества до предела, создавая уже свои собственные, сложные фреймворки автоматизированного тестирования. И знаете, это сводит меня с ума, потому что они могли бы легко использовать уже существующие инструменты и библиотеки с открытым исходным кодом, соответствующие их требованиям. Соответственно, не было бы необходимости в написнаии кода СОВСЕМ, что, в большинстве случаев, привело бы к лучшему результату.
Другая область, о которой большинство людей забывают подумать, будучи в поисках фреймворка автоматизированного тестирования, – это способность тестировать API. Я по большей части сторонник функционального тестирования за пределами пользовательского интерфейса (UI). И поскольку интеграционные тесты обходят пользовательский интерфейс, они, как правило, быстрее и надежнее, чем тесты GUI.
Вот почему важно иметь тестовый набор, который будет тестировать несколько разных уровней вашего приложения. Для этого вам нужны инструменты, которые могут тестировать компоненты как пользовательского, так и непользовательского интерфейса вашего приложения.
Итак, прежде чем вы сделаете ошибку под названием «напиши свой собственный фреймворк», обязательно ознакомьтесь с этими девятью фреймворками с открытым исходным кодом.
Serenity
Это фреймворк с открытым исходным кодом для написания функциональных тестов, в который из встроена система генерации отчетов о выполненных тестах. Serenity поддерживает интеграцию с другими популярными фреймворками, например: JUnit, Cucumber, JBehave, Rest-Assured, Selenium.
Serenity работает по принципу оболочки для других инструментов. Данный инструмент помогает упростить процесс написания тестов с использованием Selenium. Serenity также предлагает множество встроенных функций, таких как управление WebDriver, управление состоянием между этапами, создание скриншотов, запуск параллельных тестов, упрощение Jira интеграции без необходимости написания ни одной строки кода.
Serenity создает очень подробные динамические отчеты. Их можно использовать не только для просмотра результатов теста, но и включать в документацию приложения.
Фреймворк также имеет дополнительный метод c аннотацией @Step. При правильном использовании данный метод дает возможность улучшить тесты, сделав их поддерживаемыми, с возможностью внесения изменений в дальнейшем.
Недавно была добавлена возможность интеграции фреймворка с REST Assured, популярной библиотекой Java с открытым исходным кодом для тестирования API RESTful. Он создает еще одну оболочку поверх REST Assured, которая позволяет тестам Serenity Selenium работать беспрепятственно.
И есть еще одна полезная функция отчетности: вы можете легко просматривать и проверять все запросы и детали ответов в своих тестовых отчетах, не написав ни строки кода.
Serenity обеспечивает многие вещи, которые вам, в большинстве случаев, пришлось бы писать с нуля. Это один из лучших фреймворков с открытым исходным кодом.
Кроме того, существует JavaScript версия Serenity под названием SerenityJS. Поскольку многие фронтенд разработчики также отвечают за тестирование, для них JavaScript версия фреймворка автоматизации тестирования будет очень полезной.
Cypress
По сравнению с большинством других инструментов в этом списке, Cypress – это более ориентированный на разработчиков фреймворк автоматизации тестирования, придерживающихся TDD. Одним из его базовых принципов является упрощение процесса сквозного тестирования, делая его приятным и простым.
Его архитектура отличается от архитектуры Selenium; в то время как Selenium WebDriver работает на фоне, вне браузера, Cypress – работает прямо в браузере.
Данный подход обеспечивает согласованность результатов и дает вам доступ к каждому объекту, не требуя от вас обработки сериализации объектов или сквозных протоколов. Фактически, вы запускаете свое приложение в Cypress.
Таким образом, фреймворк может немедленно уведомлять вас обо всех вещах, происходящих внутри браузера, так что у вас есть доступ к каждому элементу объектной модели документа (DOM).
Cypress также упрощает процесс отладки приложения и разработчик может более свободно использовать другие инструменты на протяжении всего процесса разработки.
Robot Framework
При выборе Python для автоматизации тестирования, вы не ошибётесь, если выберете Robot Framework. Этот продукт, разработанный специально для тестировщиков, использует подход, основанный на ключевых словах. Данный подход упрощает процесс создания тестов и улучшает их читабельность. Фреймворк Robot включает множество библиотек и других инструментов, которые вы можете свободно использовать. Несмотря на то, что данный фреймворк создан под Python, вы можете пользоваться Java и IronPython (.NET).
Хотя библиотека Selenium WebDriver самая используемая внешняя тестовая библиотека, Robot Framework может тестировать другие объекты, кроме сайтов, такие как FTP, MongoDB, Android и Appium. В дополнение ко всем этим фишкам, наличие нескольких видов API делает его очень мощным и легко расширяемым средством автоматизации.
Тестирование на основе ключевых слов, являющееся основой Robot Framework отлично подходит для тех тестировщиков, которые уже работали с другими инструментами, основанными на этом же подходе. Опыт, безусловно, даст преимущество в работе с фреймворком.
Если ваша команда в основном состоит из тестировщиков, Robot Framework – отличный вариант.
RedwoodHQ
RedwoodHQ использует немного другой подход, если сравнивать его с другими инструментами в этом списке. Он создает интерфейс веб-сайта, который позволяет нескольким тестировщикам работать вместе и запускать тесты из одного доступного местоположения.Вы можете писать тесты на Java / Groovy, Python и C # для тестирования веб-приложений с помощью Selenium, API или баз данных, используя их интегрированную веб-среду разработки, которая также включает встроенную Git интеграцию.
В RedwoodHQ есть ключевые слова, которые Вы можете использовать для быстрого создания и изменения тестов. Чтобы создать тестовый сценарий, просто найдите действие, которое вы хотите выполнить, перетащите его в тест кейс и введите ожидаемые значения параметров.
Встроенная интегрированная среда разработки даст Вам возможность как создавать и изменять тест кейсы и действия, так и запускать сами тесты. Вы также можете запускать параллельные тесты и просматривать историю всех предыдущих тестов.
RedwoodHQ удобен для тестирования и имеет множество встроенных функций, которые вы можете использовать для выполнения автоматизированного тестирования.
Sahi
Разработанный для тестирования веб-приложений, Sahi предлагает как версию с открытым исходным кодом, так и профессиональную версию. Он работает как прокси-сервер, который можно использовать в браузере. С панели инструментов Sahi вы можете запустить браузер, который хотите протестировать.
Sahi обеспечивает запись ошибки и создание скриншотов при любом взаимодействии с приложением. Например, когда вы наводите курсор на любой элемент в браузере Sahi, он показывает вам все действия, которые можно выполнить с помощью этого элемента.
Вы также можете использовать контроллер для воспроизведения сценария. Функция записи и воспроизведения Sahi упрощает работу с автоматизацией тестирования простых HTML приложений. Но не полагайтесь полностью на запись и воспроизведение; этот подход не лучший выход в создании удобных и надежных автоматизированны тестов. Данная функция отлично подойдет для создания первоначального теста, но нужно немного поработать над его усовершенствованием, чтобы сделать его надежным и поддерживаемым.
Gauge
Gauge – это один из новейших инструментов автоматизации тестирования с открытым исходным кодом для Mac, Windows, и Linux, разработанный компанией ThoughtWorks— той же компанией, создавшей когда-то Selenium.
Приверженцы разработки через тестирование и на основе описания поведения оценят по достоинству фишку данного фреймворка создания динамической документации.
Все тесты описываются в виде spec-файлов в формате markdown, а реализация step’ов возможна на ЯП: Java, C# , Ruby, JavaScript, Python и Go.
Gauge довольно молодой фреймворк, который все еще находится на стадии beta-разработки, но если Ваша команда не желает отставать от передовых технологий, Вы можете попробовать и ощутить на себе все прелести данного фреймворка.
Galen Framework
Если все ваши силы в автоматизации направлены на UX или тестирование макета, Galen Framework может идеально вам подойти. Созданный специально для тестирования пользовательского интерфейса (UX), Galen имеет специфический синтаксис и правила, которым необходимо следовать для описания тестов и тестирования макета вашего приложения. Фреймворк также позволяет вам определить размер окна, затем запускает тесты, чтобы проверить макет приложения на соответствие требованиям.
Тесты данного инструмента также создают детализированные HTML отчеты со скриншотами, в отчеты также включаются изображения для сравнения. Вы можете писать тесты в простом текстовом файле, используя синтаксис фреймворка, JavaScript, или Java.
Citrus Framework
Citrus это фреймворк с открытым исходным кодом, который поможет Вам автоматизировать тесты для практически любого протокола обмена сообщениями или формата данных. Если тестовый поток подразумевает взаимодействие приложения с другими сервисами, тогда инструменты функционального тестирования, как Selenium, не помогут.
Citrus подходит для тестирования интеграции обмена сообщениями при использовании любой из технологии передачи сообщений: HTTP, REST SOAP или JMS. Citrus также интегрирован с Selenium. Это удобно в случае, если Вам нужно работать с пользовательским интерфейсом, а затем переключиться на фоновые процессы. Например, скажем, вам нужно нажать кнопку «отправить письмо» и проверить, что письмо было получено. Citrus может получить это электронное письмо или JMS сообщение, введенное через пользовательский интерфейс, и сравнить результаты. И это все в одном тесте.
Таким образом, Citrus – это фреймворк, способный обеспечить сквозное тестовое покрытие, которое не способен обеспечить ни один инструмент GUI тестирования.
Karate-DSL
Если Вы уже пользуетесь Cucumber и Вам также нужно тестировать REST API, Karate-DSL может быть идеальным кандидатом для Вас. Данному фреймворку уже больше года и все больше и больше людей используют его для тестирования API.
Так как сам инструмент построен как бы “поверх” Cucumber-JVM, Вы можете запускать тесты, просматривать отчеты, использовать весь функционал инструмента так же, как и в случае с любым стандартным проектом на Java.
Время выбирать!
Это довольно короткий список фреймворков автоматизации тестирования с открытым исходным кодом из большого множества. С этого момента стоит задуматься над выбором наиболее подходящего для вас фреймворка.
Перед тем, как написать первую строчку кода своего фреймворка, убедитесь, что не существует соответствующего Вашим требованиям библиотеки или фреймворка. Не тратьте свое время напрасно, пытаясь заново изобрести колесо; хотя бы пройдитесь по этим фреймворкам. Если автоматизация тестирования – это то, к чему вы сейчас стремитесь, приглашаем вас к нам на Курсы Автоматизации тестирования ПО.
Записаться сейчас / Бесплатная консультация