1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jia20220830-appium

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Pytest_note.md 5.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 27.04.2025 00:12 630f2b0

Pytest

Правила

  • Файлы с расширением py должны начинаться с test_
  • Классы должны начинаться с Test_
  • Методы должны начинаться с test_

Методы setup и teardown

  • Модульный уровень: setup_module(), teardown_module()
  • Функциональный уровень: setup_function(), teardown_function()
  • Уровень класса: setup_class(), teardown_class()
  • Уровень метода класса: setup_method(), teardown_method()
  • Уровень детализации метода класса: setup(), teardown()

Использование conftest.py

  • Файл имеет фиксированное имя и не поддерживает переименование
  • Перед запуском всех тестовых файлов в одной директории выполняется файл conftest.py
  • Подходит для обмена данными между несколькими файлами py
  • Расположен в корневой директории и используется вместе с fixture для выполнения глобальных методов до и после тестов
  • Расположен в пакете, действует только внутри этого пакета

Использование fixture

  • session > module > class > function
  • session: выполняется один раз перед выполнением всех тестовых файлов .py
  • module: выполняется один раз перед выполнением каждого тестового файла .py
  • class: выполняется один раз перед выполнением каждого тестового класса в файле
  • function: выполняется один раз перед выполнением каждого тестового метода во всех файлах
  • при scope=session fixture должен быть расположен в файле conftest.py
  • Пример

    @pytest.fixture(scope='class', autouse=False)

    def desired():

    print('Это метод fixture')

  • Использование autouse

    @pytest.fixture(scope='function', autouse=True) >> autouse=true при этом не нужно вызывать fixture в каждом методе, он будет автоматически вызван перед каждым методом. Использование yieid @pytest.fixture(scope='class', autouse=False)

    def desired():

    driver = webdriver()

    yieid driver # после yieid выполнение продолжится после завершения класса, что эквивалентно teardown_class

    print('Закрыть')

    driver.close()


pytest.ini

  • Основной конфигурационный файл, имеющий наивысший приоритет, позволяющий изменять значения по умолчанию pytest
  • addopts: параметры командной строки
  • testpaths: пути к тестам, используется в случае, если параметр не указан в командной строке
  • markers: регистрация типов тестовых случаев, для удобства их группового выполнения
  • filterwarnings: фильтрация предупреждений

pytest.main

  • -vs подробный вывод;
  • --reruns=2 повторное выполнение в случае неудачи 2 раза;
  • -x остановка выполнения при неудаче;
  • -maxfail=2 остановка выполнения при 2 неудачах;
  • -k 'xi and test' выполнение тестовых случаев, содержащих в названии слова xi и test;
  • -n 2 выполнение в многопоточном режиме;
  • -m=smoke or retest выполнение тестовых случаев с метками smoke или retest;
  • выполнение тестовых случаев с метками smoke или retest, повторное выполнение в случае неудачи 2 раза

    pytest.main(['-vs', '-m=smoke or retest', '--reruns=2'])

  • выполнение всех тестовых случаев в указанной директории и указание директории для отчета

    pytest.main(['-s', '../test_case/', '--alluredir', '../Report/temp'])

  • генерация отчета

    os.system('allure generate ../Report/temp -o ../Report')/Report/allure_report --clean')


терминал

  • выполнение тестовых случаев в терминале PyCharm

    pytest -s test_case/test_homelink.py --alluredir=Report/temp - Сгенерировать отчет тестирования allure generate Report/temp -o Report/allure_report --clean


Отчет Allure

  • Используется для вывода отчета тестирования в командной строке
  • Официальный адрес открыть и перейти к Maven Central
  • Скачать ZIP-файл, распаковать и добавить директорию bin в переменные среды
  • allure --version проверить версию

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/jia20220830-appium.git
git@api.gitlife.ru:oschina-mirror/jia20220830-appium.git
oschina-mirror
jia20220830-appium
jia20220830-appium
master