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

Передача параметра из Jenkinsa в тест + maven

jenkins
maven
webdriver
Теги: #<Tag:0x00007f7b704745f8> #<Tag:0x00007f7b70474440> #<Tag:0x00007f7b70474288>

(O Kaluzhyn) #1

Сразу прошу прощения, за то что создаю тему, на которую уже вроде есть ответы. Проблема в том, что эти ответы мне не помогают.
Итак: есть тесты, которые запускаются в дженкинсе. Сборщик - maven. Язык - java. Хотелось бы передавать.указывать некоторые параметры (чаще обычные стринги) непосредственно в дженкинсе. Что бы при сборке они передались в тест. Допустим указание какую колнку таблицы тестить или банальный урл.
Я читал вот эту тему: Параметризация теста из Jenkins в конфигурационный файл TestNG и пытался сделать как там описанно.
Проблемы возникли практически сразу же, при описании профиля в мавене


<profiles>
    <profile>
        <id>my_profile</id>
        <properties>
            <test.param>${env.TEST_PARAM}</test.param>
        </properties>
    </profile>
</profiles>

тест парам был подсвечен красным и ничто не помогало.
Соответственно никакого нормального кода я показать не могу, потому что никуда не продвинулся( Если кто то сможет описать пошаговый гайд, буду премного благодарен.


(Oleksandr Khotemskyi) #2

(Maksim Zhvirblia) #3

Как я добавил в pom.xml:

<properties>
    <test.param>${env.LOGIN}</test.param>
    <test.param>${env.PASS}</test.param>
</properties>

Мои test.param также подсвечивались красным, но это не мешало работе.

И использование в тестах:

Homepage.loginFied(System.getProperty("LOGIN"));
Homepage.passField(System.getProperty("PASS"));

И в самом Jenkins’e создать переменные с именами LOGIN и PASS соответственно.


(Баранов Иван) #4

Необязательно добавлять параметры в pom, чтобы прочитать в тестах. В итоге вы просто сделали из переменной среды системную переменную. Но ведь есть System.getenv(), который дает возможность читать напрямую переменные среды.
А еще параметры можно передавать при запуске Maven -DLOGIN="${LOGIN}" -DPASS="${PASS}". Тогда это будут именно системные переменнные, которые можно прочитать System.getProperty().
А еще параметры из джобы Jenkins можно сложить в файлик и читать его в тестах.
Вариантов множество.


(O Kaluzhyn) #5

Всем спасибо. Разобрался