Вы находитесь на странице: 1из 34

ОНЛАЙН-ОБРАЗОВАНИЕ

Меня хорошо
слышно && видно?

Напишите в чат, если есть проблемы!


Ставьте + если все хорошо
Не забыть включить запись!

3
Введение в pytest
Python QA Engineer
Михаил Чирков
QA Automation Engineer в ivi.ru (Web, Android)
Правила вебинара

Буду делать паузы между блоками для


просмотра вопросов.

Чтобы выделить свой вопрос в чате пишите


так “Вопрос: <текст вопроса>”

Off-topic или то что не успеем обсуждаем в


Slack #канал группы или #general
Цели вебинара

После занятия вы будете:

Знать основные особенности фреймворка pytest

Уметь добавлять в проект и запускать тесты pytest


Знать что такое фикстуры и уметь их использовать

Познакомитесь со структурами данных в python


01
Фреймворк pytest
Небольшая разминка!

1. Тестовый фреймворк это:


1) Это деталь от трактора "Беларусь"
2) Это когда не нужно ничего делать, и всё при этом работает
3) Всё тестовое окружение проекта
4) Совокупность методик, подходов и инструментов для
написания тестов

9
Небольшая разминка!

1. Тестовый фреймворк это:


1) Это деталь от трактора "Беларусь"
2) Это когда не нужно ничего делать, и всё при этом работает
3) Всё тестовое окружение проекта
4) Совокупность методик, подходов и инструментов для
написания тестов

2. Можно ли писать автотесты без тестового фреймворка?:


1) Нет, это невозможно
2) Да, можно

10
Почему pytest

• Многоцелевой и функциональный

11
Почему pytest +

• Многоцелевой и функциональный
• Возможность писать и устанавливать плагины

12
Почему pytest +

• Многоцелевой и функциональный
• Возможность писать и устанавливать плагины
• Можно использовать с тестами unittest/nose

13
Почему pytest +

• Многоцелевой и функциональный
• Возможность писать и устанавливать плагины
• Можно использовать с тестами unittest/nose
• Простой в использовании assert vs. self.assertEqual()

14
pytest +

• Многоцелевой и функциональный
• Возможность писать и устанавливать плагины
• Можно использовать с тестами unittest/nose
• Простой в использовании assert vs. self.assertEqual()
• Отличная документация, комьюнити

15
pytest -

• Является внешней зависимостью

16
Вопросы

Дополнительные материалы:
https://www.slant.co/versus/9148/9149/~unittest_vs_pytest

https://dzone.com/articles/top-5-python-frameworks-for-test-auto
mation-in-201

https://wiki.python.org/moin/PythonTestingToolsTaxonomy
02
Установка и
первый тест
Демонстрация

• Python 3.5+
• PyCharm CE

19
Демонстрация

1) Создаем virtualenv!
2) Обновляем pip: pip install -U pip
3) В проекте создаем файл requirements.txt
4) Прописываем нужную версию
>> pytest==4.6.0 (Любая нужная версия)
5) Устанавливаем pip install -r requirements.txt
6) Проверяем установку командой pytest

20
Вопросы

Дополнительные материалы:

https://python-scripts.com/virtualenv
03
Основы pytest
(репозиторий)
Демонстрация

https://github.com/konflic/python_qa_pytest

23
Демонстрация

1) Создаем файлы и функции с префиксом test


2) Создаем классы с префиксом Test
3) Флаг -v / -q управления подробностью вывода
4) Флаг -s позволяет отображать print’ы
5) Отдельный файл, метод, класс передаем его команде pytest
6) -x / --maxfail=n Остановить тесты после 1-го или n-го падения
7) --collect-only Собрать информацию о тестах
8) --lf запустить только последние упавшие
9) Посмотреть все другие параметры -h

24
PyCharm

• Работа с виртуальными окружениями


• Управление зависимостями и версиями
• Предустановка запуска тестов,
• Test runner для pytest

25
Вопросы

Дополнительные материалы:

https://docs.pytest.org/en/latest/getting-started.html#
04
fixtures
(фикстуры)
Фикстуры (репозиторий)

• Начало работы с фикстурами


• Поиск фикстур тестами
• Scope и Autouse фикстур
• Объект request, передача фикстур в фикстуры
• Возвращение значений фикстурами
• Параметризация фикстур, тестов
• Структуры данных

28
Демонстрация

https://github.com/konflic/python_qa_pytest

29
Вопросы

Дополнительные материалы:

https://pybit.es/pytest-fixtures.html
https://docs.pytest.org/en/latest/fixture.html
https://www.codementor.io/sheena/advanced-use-python-decorato
rs-class-function-du107nxsv
Цели вебинара

Узнали основные особенности фреймворка pytest

Умеем добавлять в проект и запускать тесты pytest


Узнали что такое фикстуры и уметь их использовать

Познакомились со структурами данных в python


На закрепление

https://forms.gle/WjMP7m12ncnrRmsw6

32
Опрос о занятии
в личном кабинете
Спасибо
за внимание!

Вам также может понравиться