719.04K

Презентация_2. PyTest

1.

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

2.

Меня хорошо
слышно && видно?
Напишите в чат, если есть проблемы!
Ставьте + если все хорошо

3.

Не забыть включить запись!
3

4.

Введение в pytest
Python QA Engineer

5.

Михаил Чирков
QA Automation Engineer в ivi.ru (Web, Android)

6.

Правила вебинара
Буду делать паузы между блоками для
просмотра вопросов.
Чтобы выделить свой вопрос в чате пишите
так “Вопрос: <текст вопроса>”
Off-topic или то что не успеем обсуждаем в
Slack #канал группы или #general

7.

Цели вебинара
После занятия вы будете:
Знать основные особенности фреймворка pytest
Уметь добавлять в проект и запускать тесты pytest
Знать что такое фикстуры и уметь их использовать
Познакомитесь со структурами данных в python

8.

01
Фреймворк pytest

9.

Небольшая разминка!
1. Тестовый фреймворк это:
1) Это деталь от трактора "Беларусь"
2) Это когда не нужно ничего делать, и всё при этом работает
3) Всё тестовое окружение проекта
4) Совокупность методик, подходов и инструментов для
написания тестов
9

10.

Небольшая разминка!
1. Тестовый фреймворк это:
1) Это деталь от трактора "Беларусь"
2) Это когда не нужно ничего делать, и всё при этом работает
3) Всё тестовое окружение проекта
4) Совокупность методик, подходов и инструментов для
написания тестов
2. Можно ли писать автотесты без тестового фреймворка?:
1) Нет, это невозможно
2) Да, можно
10

11.

Почему pytest
• Многоцелевой и функциональный
11

12.

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

13.

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

14.

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

15.

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

16.

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

17.

Вопросы
Дополнительные материалы:
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

18.

02
Установка и
первый тест

19.

Демонстрация
• Python 3.5+
• PyCharm CE
19

20.

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

21.

Вопросы
Дополнительные материалы:
https://python-scripts.com/virtualenv

22.

03
Основы pytest
(репозиторий)

23.

Демонстрация
https://github.com/kon ic/python_qa_pytest
23

24.

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

25.

PyCharm
• Работа с виртуальными окружениями
• Управление зависимостями и версиями
• Предустановка запуска тестов,
• Test runner для pytest
25

26.

Вопросы
Дополнительные материалы:
https://docs.pytest.org/en/latest/getting-started.html#

27.

04
xtures
(фикстуры)

28.

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

29.

Демонстрация
https://github.com/kon ic/python_qa_pytest
29

30.

Вопросы
Дополнительные материалы:
https://pybit.es/pytest- xtures.html
https://docs.pytest.org/en/latest/ xture.html
https://www.codementor.io/sheena/advanced-use-python-decorato
rs-class-function-du107nxsv

31.

Цели вебинара
Узнали основные особенности фреймворка pytest
Умеем добавлять в проект и запускать тесты pytest
Узнали что такое фикстуры и уметь их использовать
Познакомились со структурами данных в python

32.

На закрепление
https://forms.gle/WjMP7m12ncnrRmsw6
32

33.

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

34.

Спасибо
за внимание!
English     Русский Правила