Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Прогон джобы с тестами на разных энвайронментах

jdbc
jenkins
maven
java
Теги: #<Tag:0x00007f7b657417f0> #<Tag:0x00007f7b65741638> #<Tag:0x00007f7b657414f8> #<Tag:0x00007f7b65741390>

(mamax) #1

Нужно проганять тесты на 2-х енвайронментах. Есть дженкинс, пришел к выводу нужно сетапить в гоалах джобы
clean install test -P test с помощью профайлов,
засетапить профайлы в поме, где поместить проперти:
jdbc.url
jdbc.username
jdbc.password
test.url
или
clean install test -Denv=test
где env - енвайронмент и им можна управлять из джава кода
в поме
<systemPropertyVariables> <property> <name>env</name> <value>${env}</value> </property> </systemPropertyVariables>

и в коде управление энвом:

           @BeforeSuite(alwaysRun = true)
            @Parameters({"env"})
            public void setConfig(@Optional("dev") String env) throws IOException, InterruptedException {
                environ = env;
                ReporterHelp.logStyle("Environment   -  " + env);
                switch (environments.valueOf(environ)){
                    case dev :
                        baseUrl = "url_dev";
                        System.setProperty("config", "config.properties");
                        break;
                    case test:
                        baseUrl = "url_test";
                        System.setProperty("config", "test.properties");
                        break;
                    default:
                        baseUrl = "url_dev";
                        System.setProperty("config", "config.properties");
                }
        }

    public enum environments
    {
        dev, test
    }

Кто - то может поделится опытом или советами для прогона на 2-х энвах? но пока не дало результата


(Artem Nikitin) #2

Оба варианта нормальные. На мой взгляд, первый лучше если параметров всего несколько (2 - 3), а второй когда их много (10 и более). Также еще можете рассмотреть вариант управлять окружением через переменные окружения (environment variables), я обычно всегда так делаю.


#3

Maven не передает переменные из POM-а плагину автоматически. Надо вручную прописать, что хотим передать.

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-surefire-plugin</artifactId>
	<configuration>
		<environmentVariables>
			<env>${env}</env>
		</environmentVariables>
	</configuration>
</plugin>

(Sergey Pirogov) #4

можешь посмотреть вот это http://automation-remarks.com/6-sposobov-raboty-s-propierti-failami/


(Василий Чернов) #5

Привет.
У нас, к примеру, это организовано следующим образом.
В джобе есть параметр, который отвечает за окружение

parameters {
... 
    choiceParam("ENV", ["test", "dev"], "description")
...
}

Далее, согласно вашему коду, можно вызвать таким образом

clean install test -P $ENV


Do different tests instead of repeating the same tests


(mamax) #6

вопрос решён, спасибо