Статьи

Зачем вам нужны средства автоматизации сборки для тестирования автоматизации Selenium?

Будучи тестером автоматизации, мы понимаем, что в цикле выпуска время всегда имеет значение. Автоматизация тестирования Selenium помогает нам сэкономить значительное количество времени в наших циклах испытаний. Однако важно отметить способ выполнения сценариев тестирования Selenium. Какие рамки вы используете? Вы делаете это с внутренней инфраструктурой или с сетью Selenium Grid? Вы используете инструменты автоматизации сборки или нет ?!

Инструменты автоматизации сборки, такие как Maven, Gradle и ANT, позволяют еще больше ускорить автоматизацию тестирования Selenium. Они не только помогают вам управлять жизненными циклами сборки, зависимостями, но также позволяют выполнять параллельное выполнение теста. В этом посте мы поймем, почему каждому тестировщику автоматизации необходим инструмент управления сборкой для тестирования Selenium.

Что такое инструменты автоматизации сборки?

Инструменты автоматизации сборки позволяют нам управлять сборками наших проектов, автоматизируя процессы обработки зависимостей Selenium, компилируя исходный код в двоичный файл, а затем упаковывая двоичный файл. Все для того, чтобы запустить тестирование автоматизации. Инструменты автоматизации сборки стали ключевыми в процессе разработки и тестирования программного обеспечения. Эти инструменты помогают разработчикам выполнять такие повседневные действия, как.

  • Загрузка зависимостей
  • Генерация исходного кода и извлечение документации из него
  • Компиляция исходного кода
  • Упаковка скомпилированного исходного кода
  • Установка упакованного кода на сервер, локальный или центральный репозиторий
  • Запуск тестов

Что делает инструменты сборки особенными для автоматизации тестирования селена?

Инструменты автоматизации сборки играют жизненно важную роль в автоматизации тестирования Selenium . В большинстве небольших проектов разработчики обычно выполняют процесс сборки вручную. Но это становится довольно сложно, так как проекты становятся больше. Вот почему мы должны автоматизировать эти процессы и избавить себя от нежелательного ручного труда. Давайте рассмотрим некоторые поразительные причины создания инструментов, которые будут привлекательны для каждого тестировщика автоматизации, который работает с автоматизацией тестирования Selenium.

1. Поддерживает непрерывную интеграцию и непрерывную доставку

Большинство компаний в настоящее время стремятся обеспечить участие в проекте как можно большего количества команд. Таким образом, рост принятия культуры DevOps привел к росту непрерывной интеграции. У каждой фирмы есть общий репозиторий, в который разработчики интегрируют код. Но когда они делают это несколько раз в день, мы называем это непрерывной интеграцией.

Вы также можете проверить каждую интеграцию с помощью автоматической сборки. Практика непрерывной доставки обычно идет рука об руку с КИ. Инструменты автоматизации сборки легко интегрируются с такими системами, как Hudson, Jenkins, Bamboo, TravisCI, TeamCity и т. Д. Таким образом, они помогают вам не только создавать надежный проект, но и поддерживать процессы CI / CD, которые запускают эти проекты.

Давайте рассмотрим пример Maven и Jenkins, инструмента автоматизации сборки и инструмента CI / CD, которые идут рука об руку.

Maven — это инструмент автоматизации сборки, который помогает вам компилировать зависимости Selenium, чтобы вы не застряли с включением файлов JAR в свой проект автоматизации тестирования Selenium. Это также поможет вам запустить тестирование Selenium параллельно .

Jenkins, с другой стороны, предлагает вам способ создания конвейера, который поможет вам запускать эти проекты сборки из одной среды тестирования в другую. Используя Jenkins, вы можете автоматически запускать сборку вместе с тестами и развертыванием.

2. Включает управление жизненным циклом сборки

Жизненный цикл сборки определяет последовательность этапов для достижения целей компании. Он определяет процесс создания и развертывания проекта. В этом случае фазы представляют разные этапы жизненного цикла. Каждой фирме необходимо выполнить последовательность шагов, прежде чем они смогут доставить продукт. Поскольку управление сборкой включает в себя зацепки или фазы цикла, оно помогает в обработке последовательных шагов. Жизненный цикл сборки по умолчанию включает следующие фазы, указанные ниже:

  • validate — для проверки правильности проекта и доступна вся необходимая информация
  • compile — скомпилировать исходный код
  • test — проверить скомпилированный исходный код
  • package — упаковать скомпилированный код в распространяемый формат, такой как WAR.
  • проверять — проводить любые проверки по результатам интеграционных испытаний, чтобы гарантировать их качество
  • установить — установить пакет в локальный репозиторий
  • deploy — выполняется в среде сборки, копирует окончательный пакет в удаленный репозиторий.

Например, вы должны скомпилировать после завершения части кода. Затем наступает этап упаковки в пакет, такой как WAR, JAR или EAR. Тем не менее, вам может потребоваться заранее выполнить некоторые предварительные задачи. Управление сборкой позволяет использовать фазы цикла для достижения всех вышеупомянутых задач.

3. Включает безупречную поддержку плагинов

Большинство инструментов автоматизации сборки содержат надстройки и другие инструменты, которые обеспечивают преимущества в дополнение к существующим возможностям. Некоторые из этих плагинов имеют решающее значение для основных задач. Плагины могут помочь в добавлении целей к нашим этапам в наших проектах. Например, плагин компилятора имеет две цели: компилировать и тестировать компилировать. « Compile » помогает компилировать исходный код основного кода, а « testcompile » помогает компилировать исходный код тестового кода.

С другой стороны, мы можем настроить некоторые для выполнения задач в соответствии с индивидуальными потребностями. Они также автоматизируют общие функции, такие как открытие, копирование, архивирование или переименование файлов, а также восстановление папок. В дополнение к автоматизации этих общих функций, эти плагины сокращают ручной труд в области модификации текста и проверки структуры проекта.

Поддержка плагинов также включает в себя статический анализ кода, компиляцию тестов, запуск тестов, генерацию отчетов о тестировании и т. Д. Кроме того, эти плагины также помогают другим командам использовать платформы автоматизации тестирования Selenium на разных языках программирования. Они автоматизируют создание, сборку и упаковку исполняемых файлов с помощью метаданных. После этого мы можем установить их в наш локальный репозиторий и развернуть их в удаленном репозитории для использования другими командами.

4. Выполнение параллельного тестирования

Одна из наиболее прибыльных причин выбрать инструменты для автоматизации тестирования Selenium — использовать параллельное тестирование. Автоматизация тестирования — это большая экономия времени для разработчиков и тестеров! Однако, если он выполняется последовательно, это может замедлить команду, а не ускорить ее. С течением времени ваши веб-сайты или веб-приложения будут расти, и вместе с этим будут расти ваши наборы или требования для автоматизации тестирования Selenium. В конце концов, вы достигнете точки, в которой вам придется использовать параллельное тестирование в Selenium, чтобы выполнить свои проекты раньше срока. Инструменты автоматизации сборки помогут вам сделать это с легкостью.

На самом деле, существует немного платформ автоматизации тестирования, таких как Gauge, который позволяет проводить параллельное тестирование с Selenium через плагин Maven. Вот пример из одного из наших репозиториев GitHub для запуска Gauge с Selenium .

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
< groupId >com.thoughtworks.gauge.maven< /groupId>
                < artifactId>gauge-maven-plugin</artifactId>
                < version>1.3.3</version>
                < executions>
 
                    < execution>
                        < id>test-chrome< /id>
                        < phase>test< /phase>
                        < configuration>
                            <env>chrome< /env>
                            < inParallel>true< /inParallel>
                            < nodes>2</nodes>
                            < specsDir>specs< /specsDir>
                        < /configuration>
                        < goals>
                            < goal>execute< /goal>
                        </goals>
                    < /execution>

5. Включает управление зависимостями

Когда одна часть программного обеспечения зависит от другой, мы называем это зависимостью. Они включают в себя файлы, группу файлов в пакете, банки, внутренние и внешние библиотеки, присутствующие в сети. Важно разрешить и управлять этими зависимостями. Здесь инструменты сборки играют решающее правило.

Инструменты сборки позволяют автоматически разрешать зависимости. Например, вы хотите использовать текущую и обновленную версию библиотеки. Теперь, если вы сделаете это вручную, вам придется сначала удалить текущий файл JAR. После этого вам необходимо скачать последнюю версию из репозитория и добавить ее в проект. В некоторых случаях вам может даже понадобиться загрузить транзитивные зависимости и добавить их в свой проект.

Инструменты сборки помогают нам изменять гибкие конфигурации зависимостей. Эти конфигурации представлены в виде файлов, таких как build.Gradle, pom.xml и т. Д. Инструменты сборки также могут создавать локальные структуры или локальные репозитории. После этого они загружают и кешируют зависимости и при необходимости делают это снова.

Как выполнить автоматизацию испытаний с помощью Gauge & Selenium Framework?

6. Правильно выполняет порядок команд

Команды с зависимостями являются наиболее трудоемкими для выполнения. Но знать, как вы можете заказать выполнение команд, еще сложнее. Это связано с тем, что в большинстве случаев нам нужно передавать выходные данные одной команды в качестве входных данных для другой. Таким образом, если проект масштабный, то управлять им всем вручную становится не по силам.

Создавайте инструменты для автоматизации этих задач и помогайте сотрудникам сосредоточиться на другой важной работе. Эти инструменты также автоматизируют создание исполняемых файлов. Таким образом, каждый разработчик может создавать и запускать программное обеспечение на своем компьютере.

Список известных инструментов автоматизации сборки

Я надеюсь, что теперь вы знаете преимущества использования инструментов сборки для автоматизации тестирования Selenium. Теперь следующий вопрос, который возникает. Какой использовать? Ну, это зависит от того, какой язык программирования для тестирования вам удобнее?

Ява

Maven : инструмент автоматизации сборки с открытым исходным кодом, Maven помогает создавать отчеты и документировать центральную часть информации. Maven также можно использовать для управления проектами, написанными на C # и ruby.

Gradle : также инструмент автоматизации сборки с открытым исходным кодом. Вместо того чтобы использовать форму XML, используемую Maven, Gradle использует основанный на Groovy предметно-ориентированный язык.

питон

Pybuilder : PyBuilder — это инструмент для сборки, написанный исключительно на Python.PyBuilder основан на концепции программирования на основе зависимостей, но он также поставляется с мощным механизмом плагинов, позволяющим создавать жизненные циклы сборки, аналогичные тем, которые известны в других известных (Java) инструменты для сборки.

Рубин

Rake : с 1700+ GitHub Stars, 530+ Forks Rake является инструментом автоматизации сборки. Rake помогает пользователю определять задачи и описывать зависимости.

PHP

Phing : инструмент PHP, основанный на Apache ANT, он использует файлы сборки XML и расширяемые классы задач PHP, которые облегчают его использование.

C #

CMake : CMake — это инструмент автоматизации сборки с открытым исходным кодом, предназначенный для сборки, тестирования и упаковки программного обеспечения.

MS Build : Microsoft Build Engine, более известный как MSBuild, — это бесплатный инструмент автоматизации сборки с открытым исходным кодом.

JavaScript

Gulp : GulHub включает более 31 600+ GitHub Stars, 4400+ Forks и более 3300+ плагинов. Это система потоковой сборки для node.js, которая помогает разработчикам автоматизировать и улучшить рабочие процессы разработки.

Grunt . С более чем 12 000+ GitHub Stars, 1500+ Forks и более чем 6300+ плагинами Grunt является известным исполнителем задач для JavaScript, который изначально был разработан с целью предоставления интерфейса разработчика инструментов для разработчиков через командную строку.

Вот и все.!

С повышенным вниманием к автоматизации тестирования Selenium недостаток знаний об инструментах сборки может вас сдерживать. Автоматизация повторяющихся задач является основным фактором для своевременной доставки ваших проектов. Делая это параллельно с правильным инструментом автоматизации сборки, вы можете сделать свой выпуск быстрым!

Если вы начинающий тестировщик автоматизации, важно помнить о преимуществах использования инструментов сборки для будущих проектов автоматизации тестирования Selenium. Если вы находите это немного подавляющим, то лучше всего начинать с малого. Начните с тонкой настройки мелких вещей для автоматизации небольших тестовых случаев. Постепенно у вас и вашей команды может быть более упорядоченный процесс для полного использования потенциала инструментов автоматизации сборки.

Опубликовано на Java Code Geeks с разрешения Адитьи Двиведи, партнера нашей программы JCG . См. Оригинальную статью здесь: Зачем вам нужны средства автоматизации сборки для тестирования автоматизации Selenium?

Мнения, высказанные участниками Java Code Geeks, являются их собственными.