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

Передача значения url в тесты с в джобе Jenkins

python
webdriver
Теги: #<Tag:0x00007f7b6d64a948> #<Tag:0x00007f7b6d64a768>

#1

Добрый день,

Есть тесты, которые проверяют, к примеру test.server.ru
сам url (test.server.ru) прописан в config.py
в виде:

    base_url="http://test.server.ru"

далее я импортирую это в тесты. Тесты запускаются как джобы в дженкинсе.
Все было хорошо, пока тесты отрабатывали только для этого одного домена. Но возникла ситуация, когда тесты необходимо запустить разработчику на своей машине для его локальной версии, над которой он сейчас работает. У разработчика поднят свой локальный веб сервер и соответственно, dns имя его версии другое, к примеру local.dev

Как мне поступить так что бы разработчик мог запускать тесты у себя на машине и тесты ходили не на test.server.ru, а на local.dev?

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

Хотелось бы поступить следующим образом, что бы тесты для всех доменов были одни и теже, создать две джобы для запуска тестов, к примеру test_main и test_local и как-то в джобе аргументами или параметрами передавать урлу.

Или же как-то по другому, не знаю :frowning:


(Ray Romanov) #2

Ты почти ответил:

К примеру у меня, что тестировать этим занимается скрипт, который определяет какой SVN задействовали такой параметр и передает.


(vmaximv) #3

https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build


(Stan) #4

Способ еще проще (в основном для тех же разработчиков):

if not os.getenv('SUPER_ENV_VARIABLE_HOST'): 
    base_url="http://test.server.ru"
...

И собственно разработчики запускать тесты будут как-то так:

 SUPER_ENV_VARIABLE_HOST=`hostname` ./testrunner.py

правда, это с учетом того что хостнейм прописан в /etc/hosts, если нет то:

 SUPER_ENV_VARIABLE_HOST=superdev1.local ./testrunner.py

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

У нас на данный момент просто сделана параметризованная сборка в Jenkins, ссылка в комментах выше как раз описывает, как это можно реализовать


Do different tests instead of repeating the same tests