Stepik Academy. Автоматизация тестирования на Python

Содержание

Слайд 2

Ещё немного про PyTest

Ещё немного про PyTest

Слайд 3

Ещё немного про PyTest Параллельный запуск тестов с плагином xdist

Ещё немного про PyTest

Параллельный запуск тестов с плагином xdist

Слайд 4

Ещё немного про PyTest Параллельный запуск тестов с плагином xdist

Ещё немного про PyTest

Параллельный запуск тестов с плагином xdist

Слайд 5

Слайд 6

Ещё немного про PyTest Параллельный запуск тестов с плагином xdist https://pypi.org/project/pytest-xdist/ https://github.com/pytest-dev/pytest-xdist https://blog.testproject.io/2019/07/16/parallel-test-execution-with-pytest/ https://www.guru99.com/pytest-tutorial.html#9

Ещё немного про PyTest

Параллельный запуск тестов с плагином xdist
https://pypi.org/project/pytest-xdist/
https://github.com/pytest-dev/pytest-xdist
https://blog.testproject.io/2019/07/16/parallel-test-execution-with-pytest/
https://www.guru99.com/pytest-tutorial.html#9

Слайд 7

О чем поговорим сегодня

О чем поговорим сегодня

Слайд 8

О чем поговорим сегодня Page Object Model - это что и как?

О чем поговорим сегодня

Page Object Model - это что и как?

Слайд 9

О чем поговорим сегодня Page Object Model - это что и

О чем поговорим сегодня

Page Object Model - это что и как?
Отчеты

о прохождении тестов с Allure
Слайд 10

О чем поговорим сегодня Page Object Model - это что и

О чем поговорим сегодня

Page Object Model - это что и как?
Отчеты

о прохождении тестов с Allure
Визуальное тестирование:
С браузерными расширениями
Со специальными утилитами
Слайд 11

О чем поговорим сегодня Page Object Model - это что и

О чем поговорим сегодня

Page Object Model - это что и как?
Отчеты

о прохождении тестов с Allure
Визуальное тестирование:
С браузерными расширениями
Со специальными утилитами
Скриншот результата теста с помощью возможностей Selenium
Слайд 12

Page Object Model

Page Object Model

Слайд 13

Page Object Model Page Object Model (Page Object, POM) - паттерн программирования.

Page Object Model

Page Object Model (Page Object, POM) - паттерн программирования.

Слайд 14

Page Object Model Page Object Model (Page Object, POM) - паттерн

Page Object Model

Page Object Model (Page Object, POM) - паттерн программирования.
Каждая

страница - экземпляр класса.
Слайд 15

Page Object Model Page Object Model (Page Object, POM) - паттерн

Page Object Model

Page Object Model (Page Object, POM) - паттерн программирования.
Каждая

страница - экземпляр класса. Действия на странице - методы класса.
Слайд 16

Слайд 17

Слайд 18

Слайд 19

Page Object Model: before

Page Object Model: before

Слайд 20

Page Object Model: after

Page Object Model: after

Слайд 21

Page Object Model: after

Page Object Model: after

Слайд 22

Page Object Model: after

Page Object Model: after

Слайд 23

Преимущества Page Object Model

Преимущества Page Object Model

Слайд 24

Преимущества Page Object Model Избегаем дублирования кода

Преимущества Page Object Model

Избегаем дублирования кода

Слайд 25

Преимущества Page Object Model Избегаем дублирования кода Получаем более высокий уровень

Преимущества Page Object Model

Избегаем дублирования кода
Получаем более высокий уровень абстракции за

счет инкапсулирования методов в класс страницы
Слайд 26

Преимущества Page Object Model Избегаем дублирования кода Получаем более высокий уровень

Преимущества Page Object Model

Избегаем дублирования кода
Получаем более высокий уровень абстракции за

счет инкапсулирования методов в класс страницы
Тесты читабельнее и понятнее (больше логики, меньше технического)
Слайд 27

Преимущества Page Object Model Избегаем дублирования кода Получаем более высокий уровень

Преимущества Page Object Model

Избегаем дублирования кода
Получаем более высокий уровень абстракции за

счет инкапсулирования методов в класс страницы
Тесты читабельнее и понятнее (больше логики, меньше технического)
Одно исправление => поправили везде
Слайд 28

Средства представления отчетов для PyTest

Средства представления отчетов для PyTest

Слайд 29

Средства представления отчетов для PyTest Плагин PyTest-HTML https://github.com/pytest-dev/pytest-html

Средства представления отчетов для PyTest

Плагин PyTest-HTML https://github.com/pytest-dev/pytest-html

Слайд 30

Средства представления отчетов для PyTest Плагин PyTest-HTML https://github.com/pytest-dev/pytest-html

Средства представления отчетов для PyTest

Плагин PyTest-HTML https://github.com/pytest-dev/pytest-html

Слайд 31

Слайд 32

Средства представления отчетов для PyTest Плагин PyTest-HTML https://github.com/pytest-dev/pytest-html Allure Framework Установить

Средства представления отчетов для PyTest

Плагин PyTest-HTML https://github.com/pytest-dev/pytest-html
Allure Framework
Установить Java
Скачать дистрибутив Allure

для командной строки
Добавить JAVA_HOME
Добавить папку с дистрибутивом Allure в PATH
Слайд 33

Слайд 34

Слайд 35

Слайд 36

Allure: шаги (steps)

Allure: шаги (steps)

Слайд 37

Allure: шаги (steps)

Allure: шаги (steps)

Слайд 38

Allure: шаги (steps)

Allure: шаги (steps)

Слайд 39

Allure: attachments

Allure: attachments

Слайд 40

Allure: attachments

Allure: attachments

Слайд 41

Визуальное тестирование

Визуальное тестирование

Слайд 42

Визуальное тестирование С помощью расширений для браузера:

Визуальное тестирование

С помощью расширений для браузера:

Слайд 43

Визуальное тестирование С помощью расширений для браузера: Page Ruler

Визуальное тестирование

С помощью расширений для браузера:
Page Ruler

Слайд 44

Слайд 45

Визуальное тестирование С помощью расширений для браузера: Page Ruler PerfectPixel

Визуальное тестирование

С помощью расширений для браузера:
Page Ruler
PerfectPixel

Слайд 46

Слайд 47

Визуальное тестирование С помощью расширений для браузера: Page Ruler PerfectPixel Full Page Screen Capture

Визуальное тестирование

С помощью расширений для браузера:
Page Ruler
PerfectPixel
Full Page Screen Capture

Слайд 48

Слайд 49

Визуальное тестирование С помощью библиотек: aShot (Java) https://github.com/pazone/ashot Needle (Python + Nosetests) https://the-creative-tester.github.io/Python-Visual-Regression-Testing/ https://needle.readthedocs.io/en/latest/

Визуальное тестирование

С помощью библиотек:
aShot (Java) https://github.com/pazone/ashot
Needle (Python + Nosetests) https://the-creative-tester.github.io/Python-Visual-Regression-Testing/ https://needle.readthedocs.io/en/latest/

Слайд 50

Selenium: делаем скриншот

Selenium: делаем скриншот

Слайд 51

Selenium: делаем скриншот

Selenium: делаем скриншот

Слайд 52

Selenium: делаем скриншот

Selenium: делаем скриншот

Слайд 53

Selenium: делаем скриншот browser.save_screenshot('screenshot.png') Другие методы (например, для Remote WebDriver): get_screenshot_as_file('screenshot.png')

Selenium: делаем скриншот

browser.save_screenshot('screenshot.png')
Другие методы (например, для Remote WebDriver):
get_screenshot_as_file('screenshot.png')
get_screenshot_as_png()
get_screenshot_as_base64() - для embedded

images в HTML
Слайд 54

Слайд 55

Слайд 56

Пройти задания модуля 6 (“Пятая неделя: Применение паттерна Page Object Model”);

Пройти задания модуля 6 (“Пятая неделя: Применение паттерна Page Object Model”);
По

примеру теории сгенерировать отчет о прохождении тестов с помощью Allure.
Когда откроется модуль 7 (“Шестая неделя: Финишная прямая”):
Оформить тесты в репозитории согласно принципам паттерна Page Object Model;
Приготовить код к ревью и отправить на итоговую проверку!

Домашнее задание (финальное) - 2 недели!