2.18M

Подготовка тестового окружения

1.

Онлайн-образование

2.

Проверить, идет ли запись!

3.

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

4.

Подготовка тестового окружения
фото
Вяземский Семён Валерьевич
QA Automation Lead
Beeline
svvyazemsky@gmail.com

5.

Правила вебинара
Активно участвуем
Задаем вопрос в чат или голосом
Off-topic обсуждаем в Slack #канал группы или #general
Вопросы вижу в чате, могу ответить не сразу

6.

Подготовка тестового
окружения

7.

Где разворачивать тестовое окружение?
Докер контейнер?
Виртуальная машина?
Физические сервера?
Комбинации, например докер контейнер на виртуальных машинах?
7

8.

Где хранить исходный код тестов?
Вместе с продуктом?
Отдельно от продукта?
Все тесты вместе или системные отдельно, интеграционные и другие тоже отдельно?
8

9.

Где запускать тесты?
В докер контейнере?
На хосте с продуктом?
На отдельном хосте?
Факторы влияющие на выбор:
1. Архитектура продукта
2. Виды проводимого тестирования
9

10.

Как устанавливать тесты?
Из пакетов:
● pip
● deb, rpm
Из исходного кода:
● В докер контейнере
● На хосте
1
0

11.

Чем настраивать тестовое окружение?
Инструменты управления конфигурациями?
Тестовым фреймворком?
Самописными скриптами?
1
1

12.

Сборка python пакетов

13.

Когда необходимы python пакеты?
Тесты разбиты на несколько проектов и есть необходимость импорта модулей одной части в другую, т.е. когда какая
то часть наших тестов должна стать библиотекой для другого пакета.
1
3

14.

Setuptools
Setuptools - это набор улучшений дистрибутивов Python, которые позволяют разработчикам создавать и
распространять пакеты Python, особенно те, которые зависят от других пакетов.
1
4

15.

setup.py
setup.py скрипт сборки для setuptools. Говорит setuptools о имени и версии пакета, а так же какие файлы в нем
должны быть.
from setuptools import setup, find_packages
setup(name='otus-qa',
version='0.1',
url='https://github.com/misamoylov/otus-qa',
license='MIT',
author='Mikhail Samoylov',
author_email='mikhailsamoiloff@gmail.com',
description='Otus qa python code',
packages=find_packages(exclude=['tests']),
long_description=open('README.md').read(),
setup_requires=['pytest>=4.3.1'],
zip_safe=False)
1
5

16.

Аргументы методы setup()
name – имя проекта
version – версия проекта
description – описание проекта
url – ссылка на проект, например на гитхаб
author – автор проекта
license – тип лицензии
classi ers – список информации о проекта, его назначении и т.п. (список классификаторов https://pypi.org/classi ers/)
keywords – список ключевых слов проекта
project_urls – список дополнительных URL о проекте. Это место для ссылок на трекеры , исходные репозитории или
где можно поддерживать разработку пакетов.
packages – список пакетов (директорий, которые содержат файл __init__.py)
install_requires – список зависимостей
python_requires – зависимость от версии питона
1
6

17.

Установка whl
pip install some-package.whl
1
7

18.

Сборка deb пакетов

19.

Когда необходимы пакеты зависимые от пакетного
менеджера?
• Сложный серверный продукт, например СУБД или веб-сервер, который должен работать под
управлением нескольких ОС.
• Тесты требуют дополнительную настройку операционной системы и свои конфигурационные файлы,
переменные окружения и т.п..
• Тесты представляют собой отдельный демон, который взаимодействует с тестируемой системой.
1
9

20.

FPM
Установка:
apt-get install ruby ruby-dev rubygems build-essential
gem install --no-ri --no-rdoc fpm
Использование
fpm -s python -t deb otus-qa/
2
0

21.

Слайд с домашним заданием
1 Сборка wheel тестового фреймворка

22.

Рефлексия
Отметьте 3 пункта, которые вам
запомнились с вебинара
?
Что вы будете применять в работе
из сегодняшнего вебинара?

23.

Следующий вебинар
Тема: Основы безопасности веб-приложений
13.11.2019
Ссылка на вебинар будет в ЛК за 15 минут
Материалы к занятию
в ЛК — можно изучать
Обязательный
материал обозначен
красной лентой

24.

Список материалов для изучения
https://packaging.python.org/tutorials/packaging-projects/
https://packaging.python.org/discussions/wheel-vs-egg/
https://code.tutsplus.com/tutorials/how-to-write-package-and-distribute-a-library-in-python--cms-28693
https://wiki.debian.org/BuildingTutorial
https://code.tutsplus.com/tutorials/how-to-write-your-own-python-packages--cms-26076
https://setuptools.readthedocs.io/en/latest/setuptools.html
https://packaging.python.org/

25.

Заполните, пожалуйста,
опрос о занятии по ссылке в чате

26.

Спасибо за внимание!
Приходите на следующие вебинары
Вяземский Семён Валерьевич
фото
фото
QA Automation Lead
Beeline
svvyazemsky@gmail.com
English     Русский Rules