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

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


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

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

Как я добавил в 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 соответственно.

1 лайк

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

2 лайка

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

а можно пример как из jenkins параметров файлов соорудить
в идеале хочется кормить тестам через дженкинс и мавен файл с настройками для запуска тестов.
спасибо

Можно непосредственно в коде читать переменные окружения (параметры джобы)

String env = System.getenv("env_name");

а файл json можно как то в джобу передать и потом считать ?
задача передавать в тест порядка 20 параметров - и через -D как то неудобно а так бы файлик и все - если конечно возможно