Домой » Практика » java » Выполнение тестов на различных окружениях

Выполнение тестов на различных окружениях

Различные окруженияПри настройке CI/CD часто надо запускать на различных окружениях: qa, dev, продакшене, uat. Зачастую различные креды, ссылки, порты и коннекшены к базе данных отличаются. Можно через кучу if/else в зависимости от окружения использовать нужные данные, но это, мягко говоря, не самая лучшая идея.

Так как эта информация редко когда меняется в тестах, то есть смысл держать где-то обособленно. Как вариант, можно использовать property – файл для каждого окружения, вот один из примеров:

Для получения доступа к данным могу посоветовать одну хорошую библиотеку. В Maven необходимо подключить следующие зависимости:

Далее создаём простой интерфейс:

Тут есть две особенности:

  • Если имя метода схоже с ключом в проперти – файле, то достаточно вызвать метод;
  • Если они не совпадают, то матчим с помощью @Key.

С помощью ConfigFactory мы объединяем интерфейс с нашим файлом:

Дальше в тестах или пэйджах мы спокойно можем работать с данными, для этого необходимо только создать объект класса Environment:

Чтобы не хардкодить название окружение, а получать его динамически, можно в примере интерфейса изменить немного @Sources:

Теперь нам дана возможность выбирать конкретное окружение в сьютах:

Если вам этого мало, то можете с помощью TestNG передавать через параметры:

Как видим не всё так страшно, как казалось. Без изменения кода и нагромождения ненужной логики мы легко можем управлять данными, специфичными для каждого конкретного окружения.

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
*