Эта статья была первоначально опубликована TestProject . Спасибо за поддержку партнеров, которые делают возможным использование SitePoint.
Вступая в последний квартал 2017 года, команда TestProject решила собрать лучшие фреймворки для автоматизации тестирования с открытым исходным кодом, чтобы помочь вам выбрать подходящий для вас!
Вот плюсы и минусы 7 различных сред автоматизации тестирования с открытым исходным кодом.
1. Robot Framework
Robot Framework (RF) — это среда автоматизации тестирования для приемочных испытаний и разработки на основе приемочных испытаний (ATDD). Этот фреймворк написан на Python, но также может работать на Jython (Java) и IronPython (.NET), и поэтому является кроссплатформенным (Windows, Linux или MacOS).
Плюсы:
- Он упрощает процесс автоматизации тестирования за счет использования подхода на основе ключевых слов (KDT) , который помогает тестировщикам создавать удобочитаемые тесты, которые легко создавать.
- Имеет простой в использовании синтаксис тестовых данных.
- Имеет богатую экосистему, состоящую из различных общих библиотек тестов и инструментов , которые разрабатываются как отдельные проекты.
- Имеет много API, которые делают его очень расширяемым.
- Хотя это не встроенная возможность, RF позволяет выполнять параллельные тесты через библиотеку pabot или Selenium Grid .
Минусы:
- Нелегко настроить HTML-отчеты.
Итог: эта кроссплатформенная структура настоятельно рекомендуется, если вы ориентируетесь на автоматизацию KDT с широким спектром библиотек и расширений. Если вы хотите добавить новые ключевые слова (с помощью API библиотеки RF-тестов ), вам необходимы базовые знания языка программирования Java / Python / C.
2. Юнит
JUnit — это фреймворк для модульного тестирования Java-приложений, используемый для написания и запуска повторяющихся тестов.
Плюсы:
- Тесты написаны на чистом Java, который известен как ведущий язык программирования во всем мире .
- Поддерживает разработку через тестирование (TDD).
- Позволяет вам создать свой собственный набор тестовых примеров.
- Очень хорошо интегрируется с другими инструментами (например, Maven ) и с IDE (например, IntelliJ ).
- Имеет историю — значит, имеет большую базу пользователей, что облегчает поиск документации по ней.
Минусы:
- Если требуется умение издеваться, нужно добавить Mockito (или другую библиотеку насмешек).
- Тесты не читаются нетехническими людьми, так как, например, имена методов в JUnit ограничены соглашениями Java.
Итог: если вы хотите написать модульное тестирование для своего Java-приложения, возможно, это лучший выбор. Однако для функционального тестирования или приложений, отличных от Java, вы должны рассмотреть другие решения.
3. Спок
Spock — это среда тестирования и спецификации для приложений Java и Groovy. Он основан на JUnit.
Плюсы:
- Создает удобочитаемые тесты и поддерживает простые английские предложения, облегчая чтение.
- Предоставляет окружающий контекст, что позволяет легко понять, как исправить ошибку.
- Имеет встроенные возможности насмешки и заглушки.
- Поддерживает управляемые данными тесты (ДДТ).
Минусы:
- Требуются базовые знания языка программирования Groovy.
Итог: если ваше приложение основано на JVM, и вы ориентируетесь на автоматизацию тестирования BDD с помощью DSL , эта среда как раз для вас!
4. NUnit
NUnit является структурой модульного тестирования для всех языков .Net. Первоначально вдохновленный Junit, он полностью написан на C # и был полностью переработан, чтобы воспользоваться многими возможностями языка .NET.
Плюсы:
- Быстрое инициирование и выполнение теста.
- Поставляется с утверждениями и аннотациями.
- Включает параллельное тестирование.
- Поддерживает разработку через тестирование (TDD).
Минусы:
- Он не кроссплатформенный, так как используется только для языков .Net.
- Он не интегрируется в экосистему Visual Studio, поэтому его использование требует большего обслуживания.
Итог: хорошая платформа с открытым исходным кодом для модульного тестирования на C #, с длинной историей и хорошей репутацией. Однако, если вы уже используете языки .NET, вы можете рассмотреть MSTest.
5. TestNG
TestNG — это среда автоматизации тестирования для Java, которая основана на JUnit и NUnit, но содержит улучшенные и новые функции (NG — Next Generation). Он предназначен для охвата всех категорий автоматизации тестирования: модульное тестирование, функциональное тестирование, комплексное тестирование, интеграционное тестирование и т. Д.
Плюсы:
- Он легко интегрируется в цикл Maven.
- Дает разработчику возможность писать гибкие и мощные тесты.
- Поддерживает Data Driven тестирования (ДДТ).
- Аннотации легко понять.
- Тестовые случаи могут быть сгруппированы легко.
- Позволяет создавать параллельные тесты.
Минусы:
- Поддерживает только Java, поэтому вы должны иметь хотя бы базовые знания языка программирования Java.
- Вы должны инвестировать время в настройку и дизайн фреймворка.
Итог: если вы используете Java, ищете комплексную среду автоматизации тестирования и готовы потратить некоторое время на настройку инфраструктуры — вам определенно следует подумать об использовании TestNG.
6. Жасмин
Jasmine — это инфраструктура модульного тестирования JavaScript. Он также известен как среда тестирования на основе поведения (BDD) для JavaScript. Он подходит для веб-сайтов, проектов Node.js или везде, где может работать JavaScript. Это в основном в паре с AngularJS .
Плюсы:
- В дополнение к JavaScript, он может работать на Python и Ruby, что может очень помочь вам, если вы хотите запускать свои клиентские тесты наряду с серверными.
- Поддерживается многими КИ (Codeship, Travic и т. Д.).
- Имеет встроенный синтаксис для утверждений.
Минусы:
- В большинстве сценариев требуется бегущий тест (например, Карма ).
- Имеет трудности с асинхронным тестированием.
Итог: Jasmin может идеально подойти для ваших нужд, если вы ищете унифицированное (клиент-серверное) решение для модульного тестирования.
7. Мокко
Mocha — это модуль модульного тестирования JavaScript, который запускает тесты на Node.js. Это в основном в паре с ReactJS .
Плюсы:
- Имеет свой встроенный тестовый бегун.
- Поддерживает асинхронное тестирование.
- Обеспечивает гибкость, поскольку вы можете использовать любую библиотеку утверждений (Chai, hope.js, Must.js и т. Д.), Которая соответствует вашим потребностям (в качестве замены стандартной функции Nosert «assert»).
Минусы:
- Относительно новичок в этой области (разработан в 2012 году), что означает, что он все еще меняется, и в некоторых аспектах его пользовательская база и поддержка могут отсутствовать.
- Предоставляет только базовую структуру тестирования, поэтому требует дополнительной настройки и настройки (может быть преимуществом для некоторых).
Итог: если вы ищете отдельную платформу для модульного тестирования на JavaScript, Mocha — ваша платформа!