#java #spring #spring-boot #spring-cloud-config
#java #spring #spring-boot #spring-cloud-config
Вопрос:
У меня есть приложение Spring Boot для автоматизации тестирования пользовательского интерфейса с использованием Cucumber и Selenium. Ожидается, что приложение будет тестировать несколько сред.
Для начала я создал файлы json с требуемыми свойствами, такими как URL, учетные данные и т.д., И загрузил их (передал путь к файлу в качестве свойства и использовал его) При запуске теста ( mvn test -DconfigFile=config/env1_config.json
).
Я вижу, что использование профилей во время выполнения теста — это вариант -Dspring.profiles.active=client1
но поскольку я настрою несколько конвейеров в Jenkins для тестирования нескольких сред, чтобы использовать один и тот же проект с разными файлами конфигурации, он будет клонировать весь проект и запускать тесты в рабочей области, соответствующей конвейеру. Чтобы избежать хранения нескольких копий проекта, я планирую использовать Rest API для запуска тестов Selenium и иметь файлы конфигурации в Git.
Возможно ли создать несколько файлов свойств приложения с пользовательскими свойствами, поместить их в Git и использовать требуемый файл свойств в приложении Spring Boot (внутри Rest API impl) на основе свойства или RequestParam с использованием Spring Cloud Config или чего-то еще?
Ответ №1:
вы можете использовать профили spring boot и передать их в качестве аргумента maven
просто передайте -Dspring.profiles.active=test1
в качестве аргумента командной строки
вы можете прочитать больше здесь
Ответ №2:
Вы можете сделать это, установив spring.profiles.active
переменную среды. Например, если вы используете файл свойств для каждой среды по соглашению application-dev.properties, application-qa.properties. Вы можете определить себя spring.profiles.active
как разработчика и qa.
Вы можете обратиться к приведенной ниже ссылке для получения дополнительной информации на сайте same.
Ответ №3:
Вы можете использовать сервер Spring Cloud и клиент.
Создайте проект с зависимостью Spring cloud server
и создайте там конфигурационный файл (appilcation.properties). Для использования этого конфигурационного файла в другом микросервисе просто добавьте зависимость spring cloud cilent в другие проекты и добавьте эту строку в application.properties
spring.cloud.config.uri:[your spring cloud server project url]
ссылка:-
Ответ №4:
Разделяю подход, к которому я пришел, поскольку это может кому-нибудь когда-нибудь помочь.
Поскольку я хотел создать Rest API и использовать свойства из разных файлов конфигурации в реализации API на основе запроса api, я создал серверное приложение Spring Cloud Config, которое подключается к репозиторию свойств приложения в git, и я использовал Rest API, предоставляемые Spring Cloud Config Server (хост: порт / приложение / профиль) на уровне сервиса моей реализации Rest API.