Как запустить один и тот же тестовый сценарий в нескольких средах, используя селен python - pytest - PullRequest
0 голосов
/ 09 апреля 2020

Может ли кто-нибудь помочь мне с приведенным ниже сценарием: я пытаюсь запустить один и тот же тестовый сценарий для разных env, таких как (dev, test, preprod и prod). но я не могу добавить имя env к URL.

conftest.py Код ниже:

import pytest
from selenium import webdriver

driver = None
environment = None

def pytest_addoption(parser):
    parser.addoption(
        "-B", "--browser_name", action="store", default="chrome"
    )
    parser.addoption(
       "--environment_name", action="store", default="acc"
    )

@pytest.fixture(scope="class")
def env(request):
    global environment
    environment_name = request.config.getoption("environment_name")
    if environment_name == "tst":
        environment = "tst"
    elif environment_name == "acc":
        environment = "acc"
    elif environment_name == "dev":
        environment = "dev"
    request.cls.environment = environment
    yield
    driver.quit()

Мой код базового класса:

import inspect

import pytest
import logging

@pytest.mark.usefixtures("setup")
@pytest.mark.usefixtures("env")

class BaseClass:
  def getLogger(self):
    loggerName = inspect.stack()[1][3]
    logger = logging.getLogger(loggerName)

и мой testfile.py:

import time

from RT.PageObjects.Search_Page importSearch_Page
from utilities.BaseClass import BaseClass


class TestChecking_SearchNoResults(BaseClass):
    def test_SearchNoResults(self):
        self.driver.get("https://"+environment+".xxxxxx/contact/search")

Я использую тот же способ, чтобы выбрать broswer и запустить py.test --browser_name, чтобы выбрать имя браузера, и это работает. Не уверен, почему это не работает.

Проблемы:

  1. имя env принимает значение none.
  2. не может вызвать env в качестве аргумента в командной строке, как в браузере имя 3. не в состоянии добавить мое имя env к моему URL. Пожалуйста, помогите как можно скорее.

Результатом / результатом является передача имени env в качестве аргумента командной строки для URL. Например: py.test --env = 'www'. когда я запускаю команду, указанную выше, она должна добавить www then, добавить www to url и запустить мой тестовый пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...