Часто используемые библиотеки в автотестах
Когда я только начинал писать автотесты на Java, меня наверное больше всего пугало количество разных библиотек
Поэтому разложу основные библиотеки автоматизатора на Java простыми словами, чтобы все сразу понимали, кто за что отвечает
1️⃣ JUnit — это самый популярный фреймворк для запуска тестов. Он даёт аннотации, жизненный цикл теста и структуру, с него обычно и начинают знакомство с автотестами
2️⃣ TestNG — это альтернатива JUnit, чуть менее мощный из коробки. Удобен, когда нужны простые сценарии запуска, группы тестов, приоритеты и параметризация
3️⃣ AssertJ — это библиотека для красивых и читаемых проверок. Вместо сухих ассертов ты пишешь цепочки вроде assertThat объекта, и тест читается почти как обычный текст, а ошибки становятся понятнее
4️⃣ Selenium — это база UI автоматизации в браузере. Через него ты находишь элементы на странице, кликаешь, вводишь текст. Мощный, но местами многословный и капризный
5️⃣ Selenide — это надстройка над Selenium, которая убирает большую часть боли. Умные ожидания, короткий синтаксис, меньше флакающих тестов. Я почти всегда советую новичкам начинать именно с него, а не с голого Selenium
6️⃣ Playwright — это современный инструмент для UI тестов от Microsoft. Быстрый, стабильный, умеет работать с несколькими вкладками и сложными сценариями. Серьёзный конкурент связке Selenium и Selenide
7️⃣ Jackson — это библиотека для работы с JSON. Она превращает json в Java объекты и обратно, что в API тестах нужно постоянно, когда разбираешь ответы сервера
8️⃣ REST Assured — это главный инструмент для API тестов на Java. Дёрнуть ручку, передать параметры, проверить статус и тело ответа, всё это пишется коротко и читаемо
9️⃣Lombok — это библиотека, которая убирает рутину из кода. Геттеры, сеттеры, конструкторы генерируются за тебя через аннотации, и классы моделей перестают раздуваться до сотни строк
1️⃣0️⃣ Awaitility — это спасение для асинхронных проверок. Когда результат появляется не сразу, например прилетает в очередь или базу с задержкой, ты красиво ждёшь нужное условие, а не пихаешь в код грубые паузы
1️⃣1️⃣ Faker — это генератор тестовых данных. Имена, почты, телефоны, адреса создаются автоматически, и тебе не нужно вручную выдумывать данные для каждого прогона
Как это всё это уживается вместе?
В реальном проекте они обычно работают в связке: JUnit или TestNG запускают тесты, REST Assured дёргает API, Jackson разбирает ответы, AssertJ проверяет результат, Selenide кликает по интерфейсу в браузере, Faker подкидывает данные, Awaitility ждёт асинхронные штуки, а Lombok держит код чистым
Не пытайтесь выучить всё разом, это бессмысленно, берите их по мере появления реальных задач, и очень скоро каждая из них ляжет в голову сама собой.
Когда я только начинал писать автотесты на Java, меня наверное больше всего пугало количество разных библиотек
Поэтому разложу основные библиотеки автоматизатора на Java простыми словами, чтобы все сразу понимали, кто за что отвечает
1️⃣ JUnit — это самый популярный фреймворк для запуска тестов. Он даёт аннотации, жизненный цикл теста и структуру, с него обычно и начинают знакомство с автотестами
2️⃣ TestNG — это альтернатива JUnit, чуть менее мощный из коробки. Удобен, когда нужны простые сценарии запуска, группы тестов, приоритеты и параметризация
3️⃣ AssertJ — это библиотека для красивых и читаемых проверок. Вместо сухих ассертов ты пишешь цепочки вроде assertThat объекта, и тест читается почти как обычный текст, а ошибки становятся понятнее
4️⃣ Selenium — это база UI автоматизации в браузере. Через него ты находишь элементы на странице, кликаешь, вводишь текст. Мощный, но местами многословный и капризный
5️⃣ Selenide — это надстройка над Selenium, которая убирает большую часть боли. Умные ожидания, короткий синтаксис, меньше флакающих тестов. Я почти всегда советую новичкам начинать именно с него, а не с голого Selenium
6️⃣ Playwright — это современный инструмент для UI тестов от Microsoft. Быстрый, стабильный, умеет работать с несколькими вкладками и сложными сценариями. Серьёзный конкурент связке Selenium и Selenide
7️⃣ Jackson — это библиотека для работы с JSON. Она превращает json в Java объекты и обратно, что в API тестах нужно постоянно, когда разбираешь ответы сервера
8️⃣ REST Assured — это главный инструмент для API тестов на Java. Дёрнуть ручку, передать параметры, проверить статус и тело ответа, всё это пишется коротко и читаемо
9️⃣Lombok — это библиотека, которая убирает рутину из кода. Геттеры, сеттеры, конструкторы генерируются за тебя через аннотации, и классы моделей перестают раздуваться до сотни строк
1️⃣0️⃣ Awaitility — это спасение для асинхронных проверок. Когда результат появляется не сразу, например прилетает в очередь или базу с задержкой, ты красиво ждёшь нужное условие, а не пихаешь в код грубые паузы
1️⃣1️⃣ Faker — это генератор тестовых данных. Имена, почты, телефоны, адреса создаются автоматически, и тебе не нужно вручную выдумывать данные для каждого прогона
Как это всё это уживается вместе?
В реальном проекте они обычно работают в связке: JUnit или TestNG запускают тесты, REST Assured дёргает API, Jackson разбирает ответы, AssertJ проверяет результат, Selenide кликает по интерфейсу в браузере, Faker подкидывает данные, Awaitility ждёт асинхронные штуки, а Lombok держит код чистым
Не пытайтесь выучить всё разом, это бессмысленно, берите их по мере появления реальных задач, и очень скоро каждая из них ляжет в голову сама собой.