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

jenkins
maven
jdbc
java
Теги: #<Tag:0x00007fedbc15ac50> #<Tag:0x00007fedbc15aae8> #<Tag:0x00007fedbc15a980> #<Tag:0x00007fedbc15a818>

(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
http://qaquestions.wordpress.com/


(mamax) #6

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