![](https://habrastorage.org/getpro/habr/upload_files/de0/e08/f14/de0e08f14793e83326778134905a6aed.png)
Вступление
Большинство из нас стремятся быть более эффективными, целеустремленными и, самое главное, производительными в тестировании. И мы делаем все необходимое для этого. Лучший способ показать это — это автоматизировать повторяющиеся регрессионные тесты, дабы исключить человеческий фактор при монотонном труде. В свою очередь, мы хотели бы знать все современные тенденции в мире автоматизации. Только так мы можем быть на вершине нашей профессии. И в сегодняшней статье мы поговорим о том, какие же библиотеки будут популярны в 2023 году для самого наиболее часто используемого языка программирования Java.
Фреймворки
Один из неплохих способов совершать меньше ошибок — писать меньше кода. И для этого мы можем использовать различные встроенные инструменты автоматизации. На мой взгляд, в 2023 году будут доминировать два самых больших фреймворка: Maven и Gradle.
Maven — это инструмент управления и понимания программных проектов. Он основан на концепции объектной модели проекта (POM). Maven может гибко управлять зависимостями, а именно загружать сторонние библиотеки в свой локальный репозиторий, выбирать нужную версию пакета и обрабатывать транзитивные зависимости. Maven не зависит от операционной системы, так как игнорирует специфику работы в командной строке платформы. Плюс у Maven есть несколько репозиториев: локальный, центральный и удаленный.
Gradle — это инструмент автоматизации сборки с открытым исходным кодом, ориентированный на гибкость и производительность с помощью концепций Apache Ant и Apache Maven. Он позволяет динамически создавать задачи, поддерживать жизненный цикл программного обеспечения и использовать логику кода для построения проекта, делая его более гибким. Gradle идеально подходит для поддержки мульти-проектных сборок, позволяя вам определять порядок выполнения задач.
Библиотеки
Библиотеки это наиболее часто употребляемые наборы классов, написанные уже кем-то и собранные вместе по какому-либо общему признаку. Библиотеки нужны для ускорения процесса разработки, они делают написание кода более лаконичным и понятным. Сегодня существует немалое количество библиотек. В этой статье мы рассмотрим, какие из них будут самыми популярными в 2023 году.
Selenium
Одна из самых популярных библиотек Selenium уже не первый год занимает лидирующие места. Количество веб-контента постоянно растет, и самый простой способ автоматизировать тестирование — начать с проверенной временем библиотеки. Поэтому Selenium продолжает оставаться той самой библиотекой, с которой новички в автоматизированном тестировании могут начать. Более того, многие компании широко используют Selenium для создания своих фреймворков и продуктов для автоматизации тестирования.
Сегодняшняя экосистема Selenium состоит из трех основных частей:
Первым и наиболее важным является Selenium WebDriver, который помогает создавать автоматические наборы тестов и тестовые наборы для масштабирования в различных средах тестирования.
Вторая часть — это Selenium IDE, которая позволяет не сложным автоматизированным скриптам проходить различные сценарии на начальных этапах.
Последним является Selenium Grid, сервер, который позволяет управлять тестами в разных средах из одного центрального репозитория, упрощая запуск и обслуживание.
Selenide
Selenide — интеллектуальное дополнение к Selenium WebDriver, использующее все его преимущества и позволяющее минимизировать объем кода за счет повторного использования повторяющегося кода в отдельных классах. К дополнительным преимуществам можно отнести поддержку Ajax для стабилизации автотестов, а также мощные селекторы, позволяющие безошибочно находить нужный элемент даже в очень сложном проекте с разветвленной и динамически меняющейся архитектурой DOM (Document Object Model). Кроме того, Selenide имеет относительно простую конфигурацию, что упрощает и ускоряет написание автоматических тестов для начинающих и профессионалов.
Selenoid
Selenoid — это сервер, который позволяет запускать десятки тестов одновременно в браузерах в докер-контейнерах. Selenoid имеет очень высокую производительность, которая превосходит Selenium Grid. Простота установки и развертывания — еще одно преимущество Selenoid. Он также быстро масштабируется и обновляется. Благодаря работе в докер-контейнерах каждый браузер запускается чистым и изолированным от основной системы и потребляет не более 20 мегабайт ОЗУ (оперативной памяти) в состоянии ожидания.
TestNG
TestNG — это среда тестирования, основанная на JUnit (Java) и NUnit (C#); он уже давно популярен среди тестировщиков Java. В 2023 году он также будет пользоваться широким спросом из-за его использования для модульного, функционального, интеграционного и end-to-end тестирования. Одним из основных факторов дальнейшего использования этого фреймворка является то, что многие проекты уже написаны с его использованием. Множественные аннотации и возможность использовать параметризацию автотестов делают его более гибким и легко адаптируемым под любые нужды тестировщика.
Cucumber
Следующий фреймворк, который также будет популярен в 2023 году, — Cucumber. Его популярность обусловлена тем, что тесты написаны на обычном языке, понятном автотестировщикам и людям, далеким от разработки и тестирования, например, аналитикам и руководителям проектов. Cucumber использует подход BDD (Behavior-Driven Development); он позволяет сторонним людям создавать собственные скрипты, что повышает качество и охват автотестов.
JUnit
JUnit предназначен для модульного тестирования и будет очень популярен в 2023 году из-за растущего числа проектов на микросервисной архитектуре. Техника TDD (Test-Driven Development) позволяет ему занять лидирующие позиции, снижая риск ошибок на самом раннем этапе, когда кода еще нет. С выходом новой версии JUnit 5, которая вводит параметры и ассерты, создание автотестов выходит на совершенно новый уровень, позволяя проводить проверки в тех случаях, где раньше это было невозможно.
Lombok
Библиотека Lombok уменьшает объем кода, который вы пишете, улучшая его читабельность. Добавить его в проект не составит труда, и сделать это нужно всего один раз. Также Lombok генерирует код на этапе компиляции, ускоряя процесс прохождения автотестов и повышая их стабильность.
Заключение
Большинство библиотек и фреймворков, перечисленных в этой статье, помогут вам оставаться в авангарде автоматизированного тестирования и облегчат вашу повседневную жизнь. Они же определят точку ближайшего развития в наступившем 2023 году.
Ну и в завершение приглашаю вас на бесплатное занятие, где мы разберемся с технологией docker-compose. Так же рассмотрим инфраструктуру CI/CD на основе Jenkins и поднимем Jenkins как docker-compose сервис. Разберем как подключить Jenkins сборщики в docker контейнерах и в чем их преимущество перед сборщиками запущенными как Java процессы. Ну и конечно же возьмем написанные функциональные API тесты, подключим к ним allure reporter и напишем шаблон сборки для jenkins и pipeline на groovy, где определим этапы сборки и запуска API тестов и напишем нотификацию в telegram через HTTP клиент.