Статьи

7 открытых систем автоматизации тестирования

Эта статья была первоначально опубликована 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 — ваша платформа!