Как параметризовать журнал в установочном приспособлении с данными из JSON и командной строки - PullRequest
1 голос
/ 08 марта 2019

Я настраиваю некоторые базовые тесты пользовательского интерфейса в pytest для моего веб-приложения.Каждый функциональный тест в этом приложении требует, чтобы пользователь сначала вошел в систему.Я хотел бы создать установочное приспособление, которое откроет браузер (какой браузер, какой сервер - зависит от аргументов командной строки), а затем войдите в систему, используя данные из файла JSON (без значений жесткого кодирования).Я не хотел бы основывать свои контрольные примеры на контрольном примере входа в систему (который содержит несколько наборов данных), я хотел бы использовать отдельное устройство.

Я успешно создал установку, которая открывает желаемый браузер и используетжелаемый сервер, но я понятия не имею, как параметризовать прибор, чтобы также использовать данные из JSON.

Итак, если я хотел использовать функцию в моем установочном приспособлении, которая регистрирует меня и требует такие параметры, как логин и пароль:

login_page = LoginPage(driver)
login_page.log_me_in(login, password)

как мне добавить ее в мое установочное приспособление?

Это моя настройка conftest.py:

@pytest.fixture(scope="class")
def setup(request, browser, server_instance):
    if browser is None:
        browser = "iexplorer"

    if server_instance is None:
        server_instance = "test"

    driver = WebdriverFactory(browser, server_instance).webdriver_instance()

    if request.cls is not None:
        request.cls.driver = driver

    yield driver
    driver.quit()

А также добавление параметров из командной строки:

def pytest_addoption(parser):
    parser.addoption("--browser", help="choose test browser: iexplorer, 
    firefox, chrome")
    parser.addoption("--server_instance", help="choose test server instance: 
    test, user")


@pytest.fixture(scope="class")
def browser(request):
   return request.config.getoption("--browser")


@pytest.fixture(scope="class")
def server_instance(request):
    return request.config.getoption("--server_instance")

Я пытался использовать pytest_generate_tests, но я делаюНе до конца понятно, как и на каком основании параметры впоследствии добавляются в прибор.

Или, может быть, мне следует добавить другой прибор, который использует установочный прибор и регистрирует меня?И все же, как передать параметры из файла?

Пожалуйста, укажите мне правильное направление!Спасибо!

...