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

Коллеги, подскажите, как вы запускаете тесты для стейджа и продакш версии сайтов через опции(флаги) pytest?

python
Теги: #<Tag:0x00007f7b699e3928>

(Вадим) #1

У меня так, настроил через pytest_addoption(parser) несколько нужных мне вызовов, по структуре

@pytest.mark.usefixtures("выбор масива сайтов стейджа или прода ")
class Test_simple:

@pytest.mark.parametrize(“url”, urls )

def test_test_1(self):
browser.open_url(urls)

В вызове первой фикстуры определяю массив сайтов необходимых для тестирования (для RU и ENG страниц сайта). И этот массив мне надо передать в @pytest.mark.parametrize . Как это сделать ? Если есть другие варианты, обязательно выслушаю


(Maxim Andryushchenkov) #2

Не совсем понял что именно вам нужно. Дополнительный уровень параметризации? Или вручить второй фикстуре результат выполнения первой фикстуры?
А если отвечать на вопрос из шапки, то у меня все сущности (api uri, db, users и тд) распределены по разным конфигам и эти конфиги собирает в себе sh-скрипт, вот такой пример для прода:

#!/bin/bash
# Скрипт запускает API тесты с маркером "monitoring" на продакшене

cd /var/qa_tests/

api_cfg="api_prod.yml"
markers="monitoring"

echo "Config files:"
echo "  $api_cfg"
echo

echo "Markers to tests running: $markers"
echo

pytest --api-cfg=${api_cfg} \
       --send-reports=f \
       --reports-receivers=email1@gmail.com,email2@gmail.com \
       -m "$markers" \
       tests_api/

#3

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


(Вадим) #4

Простите за некорректный вопрос. Мне надо поместить результат фикстуры в аргумент параметризация


(Maxim Andryushchenkov) #5

Нашел на просторах похожий случай, может вам поможет:


Но задачка интересная, подумаю еще как можно сделать


(Вадим) #6

Спасибо, буду читать, пробовать. Если что-то получится выложу