SlideShare a Scribd company logo
Як покращити Python web UI тести
Про мене
Lead Software Developer Engineer in Test
6+ років досвіду в QA Automation
Роман Поботін - GlobalLogic
Київ 2022
Agenda
❖ Що треба знати Automation QA
❖ Приклад “неякісної” архітектури
❖ Ітеративне покращення архітектури
❖ Висновки
❖ Корисна література
3
Проблема
4
Нестача технічного підґрунтя
5
Що має знати Automation QA
❖ QA Manual
❖ Мова програмування
❖ Комп’ютерні науки
❖ Тестовий фреймворк
❖ Selenium / Playwright
❖ REST API автоматизація
❖ DB автоматизація
❖ Git
❖ Система збірки коду
❖ Continuous Integration
❖ Docker
❖ CodeCoverage/CodeIntelligence
6
До чого призводить “неякісна” архітектура
7
Наслідки “неякісної” архітектури
❖ Важко читати;
❖ Важко додавати нові тести та модулі;
❖ Важко лагодити існуючі тести;
❖ Важко виправляти існуючі тести в разі змін;
❖ Важко розпаралелити тести.
8
Розглянемо детальніше
9
Все в одному
10
Які проблеми?
Драйвер має
ініціалізуватись поза
тестом
Всі посилання треба
винести в конфіги
Всі sleep треба замінити
на explicit_wait
Треба винести в
teardown, інакше при
падінні драйвер не
зупиниться
Очікуване треба брати
з реальних даних, а не
хардкодити
Необхідно реалізувати
PageObject
Краще не зберігати
бінарники в репозиторії
Назва тесту не
пояснює, що він робить
11
Виносимо драйвер
lib/driver_wrapper.py
tests/test_first.py
12
Виносимо драйвер
lib/driver_wrapper.py
13
Додаємо setup/teardown
tests/test_first.py
tests/__init__.py
14
Реалізовуємо Page Object паттерн
tests/test_books.py
15
page_objects/login/login_locators.py
page_objects/login/login_page.py
16
Реалізовуємо Facade паттерн
page_objects/base_page.py
17
page_objects/login/login_page.py
18
Додаємо Allure репорт
19
pip install allure-pytest
20
Додаємо більше інформації в репорт
21
22
Трішки більше
Додаємо знімок екрану та html код в разі падіння
23
lib/utils.py
Додаємо fixtures
24
Порівняння
25
БУЛО СТАЛО
Розглянемо наступний тест
26
27
Нас не
цікавить в
цьому тесті
Робимо підготовку даних за допомогою API
28
Виникає проблема
29
Чистимо за собою дані
30
Бонус: авторизація за допомогою API
31
lib/utils.py lib/api/__init__.py
page_objects/base_page.py
tests/__init__.py
32
Розглянемо наступний тест
33
34
O_O
35
Main scenario
Duplicates
with different
parameters
36
37
pytest.mark.parametrize
Ділимо тести на логічні групи
38
pytest --alluredir allure-results -m smoke
Запускаємо тести паралельно
39
pip install pytest-xdist
pytest -n auto --alluredir allure-results
pip install pytest-rerunfailures
pytest -n auto --reruns 3 --reruns-delay 1 --alluredir allure-results
Додаємо Linter
40
pip install pylint
pylint *.py **/*.py --fail-under 9.7
41
Трішки більше ідей
❖ Логувати API запити та відповіді;
❖ Перехоплення мережевого трафіку в браузері, аби тестувати вихідні
запити;
❖ Запуск тільки змінених тестів в CI процесі;
❖ …
42
Підсумуємо
43
44
“Якісна”
архітектура
Патерни
проектування
Pytest API Репорт
Page Object
Facade
setup/teardown
fixtures
mark (scope)
parametrize
parallel (xdist)
авторизація
Генерація
даних
Очищення
даних
BDD стиль
детальні кроки
скріншоти,
логи та html
при падінні
API логи
Наслідки “якісної” архітектури
❖ Тести швидші та стабільніші;
❖ Тестів більше, оскільки їх:
➢ Легко читати;
➢ Легко додавати нові тести та модулі;
➢ Легко лагодити/виправляти існуючі тести;
➢ Легко розпаралелити тести;
❖ Багато корисної інформації для відлагодження (debug)
45
Корисна література
● Mind Map освоєння професії QA
● Статті для автоматизаторів
● Приклад тестового фреймворку
46
Дякую!
47

More Related Content

PPT
Android auto
PDF
Karate - powerful and simple framework for REST API automation testing
PPTX
Copy_of_Spinal_Cord_Injury.pptx
DOCX
Seminar on Android Auto
PDF
FIDO and the Future of User Authentication
PPTX
Kumpulan Materi Bedah Saraf
PPTX
Slide fikar trauma kimia
PDF
FIDO2 Specifications Overview
Android auto
Karate - powerful and simple framework for REST API automation testing
Copy_of_Spinal_Cord_Injury.pptx
Seminar on Android Auto
FIDO and the Future of User Authentication
Kumpulan Materi Bedah Saraf
Slide fikar trauma kimia
FIDO2 Specifications Overview

Similar to Як покращити Python web UI тести (20)

PDF
МИХАЙЛО БОДНАРЧУК «Як AI змінить автоматизацію тестування і до чого нам треба...
PDF
МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...
PPTX
"Using AI to Automate Operational Processes at MK-Consulting", Maxim Korzhene...
PPTX
"How we optimized our product without paid solutions", Dmytro Nemesh
PDF
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
PPTX
Євгеній Пасєка, Володимир Ревак “Як протестувати медичний проект і не зашкоди...
PPTX
The Magic of Test Automation
PPTX
природна і економна дорожня карта для переходу команди розробки на тест центр...
PPTX
МИКОЛА СОЛОПІЙ «Формула успішного переходу від manual до automation testing» ...
PPTX
ATQC introduction
PPTX
"Different Facets of AI: Computer Vision and Large Language Models. How We De...
PPT
Alexey Siniavtsesv "Exploratory testing: discover critical issues before they...
PPTX
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
PDF
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Заготівля тестових даних для автоматичних тестів» QADay
PPTX
ЄВГЕН ГАЙДАЙ «Виділена команда автоматизації тестування. Досвід підтримки та ...
PDF
АНАСТАСІЯ ЧУДОВСЬКА «Переїзд з моноліта на мікросервіси з точки зору QA: як ...
PDF
РОМАН МАРІНСЬКИЙ «Організація та покращення QA Center of Excellence» QADay
PPTX
СВІТЛАНА ЯКОВЛЄВА «Реформування QA підходу – як це було і що з цього вийшло»
PDF
РОМАН ЯКИМЧУК  "Задачі Тест Аналітика”  
PPTX
ОЛЕКСАНДР ХОТЕМСЬКИЙ «ChatGPT: який вплив буде мати на тестування?» Online Q...
МИХАЙЛО БОДНАРЧУК «Як AI змінить автоматизацію тестування і до чого нам треба...
МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...
"Using AI to Automate Operational Processes at MK-Consulting", Maxim Korzhene...
"How we optimized our product without paid solutions", Dmytro Nemesh
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
Євгеній Пасєка, Володимир Ревак “Як протестувати медичний проект і не зашкоди...
The Magic of Test Automation
природна і економна дорожня карта для переходу команди розробки на тест центр...
МИКОЛА СОЛОПІЙ «Формула успішного переходу від manual до automation testing» ...
ATQC introduction
"Different Facets of AI: Computer Vision and Large Language Models. How We De...
Alexey Siniavtsesv "Exploratory testing: discover critical issues before they...
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Заготівля тестових даних для автоматичних тестів» QADay
ЄВГЕН ГАЙДАЙ «Виділена команда автоматизації тестування. Досвід підтримки та ...
АНАСТАСІЯ ЧУДОВСЬКА «Переїзд з моноліта на мікросервіси з точки зору QA: як ...
РОМАН МАРІНСЬКИЙ «Організація та покращення QA Center of Excellence» QADay
СВІТЛАНА ЯКОВЛЄВА «Реформування QA підходу – як це було і що з цього вийшло»
РОМАН ЯКИМЧУК  "Задачі Тест Аналітика”  
ОЛЕКСАНДР ХОТЕМСЬКИЙ «ChatGPT: який вплив буде мати на тестування?» Online Q...
Ad

Як покращити Python web UI тести

Editor's Notes

  • #2: Як часто роблять презентації