Бесплатные фреймворки, библиотеки и инструменты с открытым исходным кодом являются распространёнными способоми автоматизации тестирования.
Основное различие между ними заключается в том, чтобы понять, что вам больше подходит: создать новый фреймворк автоматизации тестирования с использованием библиотек или работать с готовым инструментом, который позволит сосредоточиться только на процессе тестирования.
Эта статья предоставляет краткий обзор Топ-10 бесплатных инструментов, фреймворков и библиотек с открытым исходным кодом для автоматизации тестирования.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Katalon
Платформа Katalon — это популярный и бесплатный инструмент автоматизации тестирования для веб-сайтов, мобильных устройств, API и десктопных приложений (Windows). Katalon позволяет использовать сценарные и low-code («низкого кода») методы.
Благодаря встроенным функциям, пользователи могут сосредоточиться именно на тестировании и тратить меньше усилий на создание, запуск и поддержку тестов.
Основные характеристики:
- Поддерживает языки программирования Java и Groovy.
- Совместимость с операционными системами Windows, macOS и Linux.
- Гибкое и быстрое создание тестов с функциями записи и воспроизведения, ручного и сценарного режимов.
- Отладка пользовательского интерфейса и умная отчётность для поиска проблем в непройденных тестах.
- Многократно используемые тестовые артефакты (тест-кейсы, объекты, ключевые слова и т. д.) с применением модели объектов страницы (Page Object Model) и функцией обмена тестовыми артефактами (Test Artifact Sharing).
- Поддерживает разработку на основе поведения, тестирование на основе данных, тестирование с использованием ключевых слов, кросс-браузерное тестирование (Headless, Chrome, Edge, Firefox и Safari) и мобильное тестирование на разных ОС (iOS, Android).
- Возможность импорта проектов Selenium, SoapUI и Postman.
- Встроенные интеграции с системами CI/CD (Jenkins, Bamboo, Azure DevOps, CircleCI и др.), системами управления жизненным циклом приложений (ALM), например, Jira.
Selenium
Selenium можно рассматривать не как инструмент, а как библиотеку с открытым исходным кодом.
Основные характеристики:
- Поддерживает языки программирования Java, JavaScript (Node.js), Groovy, Scala, PHP, Perl, Python, Ruby и C#.
- Возможность импортировать расширенные тесты, написанные в Eclipse, Visual Studio или NetBeans.
- Совместимость с macOS, Windows и Linux.
- Настраиваемые дополнения и плагины.
- Позволяет использовать фреймворки, такие как Ant, Maven, TestNG, JUnit, NUnit и другими.
Appium
Appium является наиболее востребованным вариантом для автоматизации тестирования мобильных приложений: нативных, мобильных веб-приложений и гибридных. Он позволяет автоматизировать работу с API и избавиться от перекомпиляции приложений.
Основные характеристики:
- Любой язык программирования, который поддерживает Selenium.
- Применение JSON Wire Protocol для добавления гибкости к используемому языку программирования.
- Сценарии автоматизированного тестирования могут выполняться на платформах iOS и Android.
- Тестирование приложений без наличия исходного кода.
Apache JMeter
Apache JMeter или JMeter — это средство для автоматизации тестирования производительности (нагрузочного и стресс-тестирования) и функционального тестирования. Основными задачами JMeter являются измерение производительности приложений и выполнение роли виртуальных пользователей для отправки запросов на указанный сервер.
Основные характеристики:
- Поддерживает язык программирования Java.
- Удобный пользовательский интерфейс и компонент Beanshell для создания собственного кода.
- Работает с HTTP, HTTPS, JDBC, LDAP, FTP, LDAP, SOAP, POP3, IMAP, SMTP, TCP и протоколами, написанными на языке Java.
- Открыт для интеграции с Jenkins и сторонними инструментами создания отчётов.
- Многопоточный фреймворк (Concurrency Thread Group) для выборочного выполнения функций отдельно от группы потоков.
SOAP UI
Для тестирования SOAP и REST API обычно используется SOAP UI. Помимо тестирования API, приложение позволяет проводить функциональное, нагрузочное, mock-тестирование и тестирование на соответствие.
Основные характеристики:
- Поддерживает языки программирования Groovy и Javascript.
- Поддержка протоколов SOAP/WSDL, REST и JMS.
- Позволяет проводить тестирование на основе данных.
- Простое управление требованиями.
- Интеграция с Maven, JUnit и Apache Ant.
Robot Framework
Robot Framework — открытый фреймворк для приёмочного тестирования и роботизированной автоматизации процессов (Robotic process automation), который использует Python в качестве основного языка написания сценариев. Этот фреймворк используется для тестирования мобильных и десктопных приложений.
Основные характеристики:
- Поддерживает языки программирования Python, Jython (Java), PyPy и IronPython (.NET).
- Совместимость с операционными системами Windows, macOS, Unix и Linux
- Для создания тестов можно использовать Eclipse, RIDE (Robot Framework IDE) или текстовые редакторы.
- Тестирование, основанное на ключевых словах, автозаполнение и подсветка синтаксиса для сокращения времени написания тестов.
- Интеграция с Appium и Selenium.
Watir
Web Application Testing in Ruby или Watir — это библиотека с открытым исходным кодом на языке Ruby для автоматизации веб-тестирования в разных браузерах.
Основные характеристики:
- Поддерживает язык программирования Ruby.
- Совместим с браузерами Chrome, Firefox, Edge, Internet Explorer, Safari.
- Возможность разработки на основе поведения благодаря интеграции с Cucumber, RSpec и др.
JUnit
JUnit используется для модульного тестирования ПО на языке Java. Этот бесплатный фреймворк пользуется популярностью среди Java-разработчиков для редактирования и рефакторинга кода на уровне модулей. В поздних версиях программы появились полезные функции, такие как более удобная организация тестов в иерархии, одновременное использование нескольких запускающих программ и многие другие.
Основные характеристики:
- Поддерживает язык программирования Java.
- Позволяет проводить скриптовые автоматизированные модульные тесты.
- API расширения или механизмы расширения для работы с ПО сторонних разработчиков.
- Параллельное выполнение (начиная с версия 5.3).
- Метод
AssertThrows
для более удобной обработки исключений и таймаутов.
Robotium
Robotium — популярный фреймворк с открытым исходным кодом для тестирования как нативных, так и гибридных Android-приложений методом чёрного ящика. Его часто называют «Selenium для Android».
Основные характеристики:
- Поддерживает язык программирования Java.
- Привязка во время выполнения для просмотра всех компонентов и действий пользовательского интерфейса Android.
- Интеграция с Gradle, Maven и Ant для написания автоматизированных тестов.
- Настройка скорости выполнения с помощью параметров
Config.sleepDuration
иConfig.sleepMiniDuration
.
Citrus
Для автоматизации интеграционного тестирования обычно используется Citrus. Этот фреймворк также позволяет использовать JUnit или TestNG в качестве дополнительных инструментов для написания модульных тестов на языке Java.
Основные характеристики:
- Поддерживает протоколы передачи данных HTTP, REST, SOAP, Kafka, JMS и т. д.
- Использование XML или Java для гибкого создания тестов.
- Интеграция с Apache Camel, Arquillian, Kubernetes и Docker для выполнения интеграционного тестирования микросервисов.
- Возможность разработки на основе поведения и автоматизированного тестирования с поддержкой облачных приложений с использованием Cucumber и YAKS.
- Тестирование методов POST, GET, PUT, DELETE, OPTIONS, PATCH, HEAD и REST API с помощью расширения REST.
Перевод статьи «Top 10 free open-source testing tools, Framework & Libraries».