Heisenbug 2018 Moscow
большая техническая конференция для тестировщиков и не только 😄
6-7 декабря, смотрите бесплатную трансляцию
link 👉 https://www.youtube.com/watch?v=4M55s_YqKc4
большая техническая конференция для тестировщиков и не только 😄
6-7 декабря, смотрите бесплатную трансляцию
link 👉 https://www.youtube.com/watch?v=4M55s_YqKc4
YouTube
Бесплатная трансляция Heisenbug 2018 Moscow. Зал 1. День 1.
Ближайшая конференция — Heisenbug 2025 Spring, 5—6 апреля (Москва + онлайн-трансляция).
Подробности и билеты: https://jrg.su/Tq0vcu
— — . .
Подробности и билеты: https://jrg.su/Tq0vcu
— — . .
Библиотека которая поможет Вам генерировать тестовые данные
описав небольшие модели, можно просто быстро и красиво создавать нужные сущности со связами для тестов
работает с ORM:
- Django
- SqlAlchemy
- Mongo
Очень прикольный подход, если Вам он почему то не подходит, можно просто перенять идею 😉
doc 👉 https://factoryboy.readthedocs.io/en/latest/index.html
link 👉 https://github.com/FactoryBoy/factory_boy
описав небольшие модели, можно просто быстро и красиво создавать нужные сущности со связами для тестов
работает с ORM:
- Django
- SqlAlchemy
- Mongo
Очень прикольный подход, если Вам он почему то не подходит, можно просто перенять идею 😉
pip install factory_boydoc 👉 https://factoryboy.readthedocs.io/en/latest/index.html
link 👉 https://github.com/FactoryBoy/factory_boy
GitHub
GitHub - FactoryBoy/factory_boy: A test fixtures replacement for Python
A test fixtures replacement for Python. Contribute to FactoryBoy/factory_boy development by creating an account on GitHub.
Модульное тестирование и Python в Mail.Ru
Статья состоит из трёх частей:
- чего добиваются с помощью модульного тестирования
- принципы, которым следуют
- как упомянутые принципы реализованы на Python
link 👉 https://bit.ly/2Lu9IYK
video 👉 https://youtu.be/npJVGhmQSU4
Статья состоит из трёх частей:
- чего добиваются с помощью модульного тестирования
- принципы, которым следуют
- как упомянутые принципы реализованы на Python
link 👉 https://bit.ly/2Lu9IYK
video 👉 https://youtu.be/npJVGhmQSU4
Еще больше докладов 😁 XP DAYS UKRAINE 2018
https://www.youtube.com/playlist?reload=9&list=PLrw9xNHk9SGQdBS8wKrKyMYP_XxUXszq1
https://www.youtube.com/playlist?reload=9&list=PLrw9xNHk9SGQdBS8wKrKyMYP_XxUXszq1
YouTube
XP DAYS UKRAINE 2018 - YouTube
"Отладка в Python"
Достаточно старая запись доклада с Moscow Python conf
Но все же будет полезно для тех кто до сих пор пользуются
Альтернатива есть 😂
link 👉 https://youtu.be/nHhifqUm_Qg
Достаточно старая запись доклада с Moscow Python conf
Но все же будет полезно для тех кто до сих пор пользуются
print() для дебага.Альтернатива есть 😂
link 👉 https://youtu.be/nHhifqUm_Qg
YouTube
Кирилл Борисов (Яндекс) - Отладка в Python: 2016 edition
Доклад с Moscow Python Conf 2016 (http://conf.python.ru)
Слайды: https://conf.python.ru/otladka-v-python-2016-edition/
Спросите любого программиста и он честно вам ответит, что 90% процентов его времени уходит на поиск ошибок. Подпишусь под этим и я, сменивший…
Слайды: https://conf.python.ru/otladka-v-python-2016-edition/
Спросите любого программиста и он честно вам ответит, что 90% процентов его времени уходит на поиск ошибок. Подпишусь под этим и я, сменивший…
Аннотации типов Python
В старых версиях Python, аннотации типов писались в комментариях или docstring и это не очень прикольно выглядело, но лучше, чем ничего
Начаиная с Python3.6+ поддерживаются аннотации типов переменных, полей класса, аргументов и возвращаемых значений функций
de
описаны основные встроеные типы модуля typing
инструменты поддерживающие анотации
link 👉 https://bit.ly/2QNQyTH
В старых версиях Python, аннотации типов писались в комментариях или docstring и это не очень прикольно выглядело, но лучше, чем ничего
def multiply(x, y):
"""
:param int x:
:param int y:
:rtype: int
"""
return x * yНачаиная с Python3.6+ поддерживаются аннотации типов переменных, полей класса, аргументов и возвращаемых значений функций
de
f multiply(x: int, y: int) -> int:
return x * y
В статье приведены примеры написания и использования анотацийописаны основные встроеные типы модуля typing
инструменты поддерживающие анотации
link 👉 https://bit.ly/2QNQyTH
Хабр
Введение в аннотации типов Python
Введение Автор иллюстрации — Magdalena Tomczyk Вторая часть Python — язык с динамической типизацией и позволяет нам довольно вольно оперировать переменными разн...
Mock in tests
#python #mock #tests #pytest #unittest
В статье объясняется что такое “мок”, зачем они нужны
Приведены множество примеров как использовать “моки”
Так приведено сравнение 2х библиотек для “моков”
mock
monkeypatch
#python #mock #tests #pytest #unittest
В статье объясняется что такое “мок”, зачем они нужны
Приведены множество примеров как использовать “моки”
Так приведено сравнение 2х библиотек для “моков”
mock
@mock.patch('__main__.square', return_value=1)
def test_function(self, mocked_square):
self.assertEquals(square(5), 1)
monkeypatch
def test_function(monkeypatch):
monkeypatch.setattr('__main__.square', lambda x: 1)
assert square(5) == 1
link 👉https://bit.ly/2FGCVPm7 code editing tips
#python #pycharm #pycon
Отличны доклад от Jetbrains
Андрей Власовских рассказал, как ускорить и упростить свою работу в PyCharm
Показал несколько полезных shortcut 👍
Я для себя открыл парочку новых 😁
link 👉https://youtu.be/FW3_OPBxk2s
#python #pycharm #pycon
Отличны доклад от Jetbrains
Андрей Власовских рассказал, как ускорить и упростить свою работу в PyCharm
Показал несколько полезных shortcut 👍
Я для себя открыл парочку новых 😁
link 👉https://youtu.be/FW3_OPBxk2s
Soft assert
#tests #pytest
Очень часто в тестах нужно сделать несколько проверок
Это конечно противоречит понятию “Один тест, одна проверка”
Но это в идеальном мире, а не в нашем 😁
example:
В такой реализации есть одна проблема
При срабатывании первого
И если там тоже есть проблемы, то мы о них узнаем когда пофиксят первую
Решением может быть реализация кастомных
example:
link 👉https://bit.ly/2MnM9kR
#tests #pytest
Очень часто в тестах нужно сделать несколько проверок
Это конечно противоречит понятию “Один тест, одна проверка”
Но это в идеальном мире, а не в нашем 😁
example:
def test_one():
response = requests.get(my_test_url).json()
assert response[‘id’] == 1
assert response[‘success’] is True
assert response[‘name’] == ‘test name’
В такой реализации есть одна проблема
При срабатывании первого
assert остальные проверки уже не будут совершатьсяИ если там тоже есть проблемы, то мы о них узнаем когда пофиксят первую
Решением может быть реализация кастомных
soft assert или же просто использовать библиотеку (plugin) pytest_checkexample:
def test_two(check):
response = requests.get(my_test_url).json()
check.equal(response[‘id’], 1)
check.is_true(response[‘success’])
check.equal(response[‘name’], ‘test name’)link 👉https://bit.ly/2MnM9kR
Flaky test
#tests #pytest
Довольно часто в работе автоматизатора тестирования встречаются нестабильные тесты (flaky),
которые падают один раз в 10-15 запусков по “непонятным причинам”.
Как же бороться с такими тестами, по запускал в ручную, flaky_test PASSED
Блага у pytest есть “замечательные флаги” для запуска таких тестов:
-
-
example:
Но в таком случаее нужно все равно сидеть запускать тесты в ручную,
пока звезды не сойдуться и flaky test не упадет,
а можно написать свой тест генератор 😁
conftest.py
И будет Вам “счастье” 😇
link 👉 https://bit.ly/2S8POID
#tests #pytest
Довольно часто в работе автоматизатора тестирования встречаются нестабильные тесты (flaky),
которые падают один раз в 10-15 запусков по “непонятным причинам”.
Как же бороться с такими тестами, по запускал в ручную, flaky_test PASSED
Блага у pytest есть “замечательные флаги” для запуска таких тестов:
-
-x - остановить при первом падении-
—pdb - устанавливает брейкпоинт дебагера в месте паденияexample:
pytest -k flaky_test -x --pdbНо в таком случаее нужно все равно сидеть запускать тесты в ручную,
пока звезды не сойдуться и flaky test не упадет,
а можно написать свой тест генератор 😁
conftest.py
def pytest_addoption(parser):
parser.addoption(
"--repeat",
action="store",
default=1,
type=int,
metavar='repeat',
help='Number of times to repeat each test. Mostly for debug purposes'
)
def pytest_generate_tests(metafunc):
if metafunc.config.option.repeat > 1:
metafunc.fixturenames.append('repeat')
metafunc.parametrize('repeat', range(metafunc.config.option.repeat))И будет Вам “счастье” 😇
pytest -k flaky_test -x --pdb --repeat 20link 👉 https://bit.ly/2S8POID
Linting …
#python #lint
Холиварный рассказ про линтеры 😍
Зачем они нам нужны и как их применять на проекте
Лично мое мнение, линтер
Какие бывают линтеры:
- Pylint
- Flake8
- SonarQube
- MyPy
👉link: https://bit.ly/2EbFRkC
👉video: https://youtu.be/7IVCOzL41Lk
#python #lint
Холиварный рассказ про линтеры 😍
Зачем они нам нужны и как их применять на проекте
Лично мое мнение, линтер
must have на проекте, в разы упрошает код ревьюКакие бывают линтеры:
- Pylint
- Flake8
- SonarQube
- MyPy
👉link: https://bit.ly/2EbFRkC
👉video: https://youtu.be/7IVCOzL41Lk
Pytest + Selenium
#pytest #selenium
Небольшой туториал - pytest в связке с selenium
- Приведены примеры создания фикстур драверов
- Пример реализации кросбраузерного тестирования, с помошью одной фикстуры и 2х браузеров
- Также показано как создавать
Статья будет полезна для новичков или для тех кто только начал смотреть в строну pytest или selenium 👌
👉 link: https://bit.ly/2ExhLCr
#pytest #selenium
Небольшой туториал - pytest в связке с selenium
- Приведены примеры создания фикстур драверов
chrome & firefox- Пример реализации кросбраузерного тестирования, с помошью одной фикстуры и 2х браузеров
- Также показано как создавать
html репортыСтатья будет полезна для новичков или для тех кто только начал смотреть в строну pytest или selenium 👌
👉 link: https://bit.ly/2ExhLCr
Аннотации типов Python, part 2
В статье описаны примеры
- Создание Generic-типов
- Объявление анотаций Callable
- Как помочь статическому анализатору с помощью Cast
- А так же как узнать об анотациях в интерпретаторе
👉link: https://bit.ly/2GYQpYf
👉link part 1: https://bit.ly/2C3yEmy
В статье описаны примеры
- Создание Generic-типов
- Объявление анотаций Callable
- Как помочь статическому анализатору с помощью Cast
- А так же как узнать об анотациях в интерпретаторе
👉link: https://bit.ly/2GYQpYf
👉link part 1: https://bit.ly/2C3yEmy
6 пунктов, которые помогут легко разобраться с regexp
#python #regexp
🙈В тестировании частенько бываю случаии
🙉для проверки чего либо нужно применять
🙊Настало время его изучить!!!
Для этого есть небольшое руководство
которое поможет разобраться с “регулярками” в 6 этапов,
а обилие примеров позволит закрепить материал ❤️
👉link: https://bit.ly/2C5ddkO
#python #regexp
🙈В тестировании частенько бываю случаии
🙉для проверки чего либо нужно применять
regexp 🙊Настало время его изучить!!!
Для этого есть небольшое руководство
которое поможет разобраться с “регулярками” в 6 этапов,
а обилие примеров позволит закрепить материал ❤️
👉link: https://bit.ly/2C5ddkO
Heisenbug 2018 Moscow
🔥 Весна пришла!
🎉 Появились в открытом доступе записи докладов
😎 Как по мне, отличные планы на выходные
👉 link: https://www.youtube.com/playlist?list=PLsVTVVvrKX9t1xlDqeSHTVwhZvwvDTF7v
🔥 Весна пришла!
🎉 Появились в открытом доступе записи докладов
😎 Как по мне, отличные планы на выходные
👉 link: https://www.youtube.com/playlist?list=PLsVTVVvrKX9t1xlDqeSHTVwhZvwvDTF7v
Трилогия, знакомство с тестированием в Python
#python #pytest #tests #unittest
В этом руководстве вы узнаете, как создать базовый тест,
выполнить его и найти все баги, до того как это сделают пользователи!
В певрой части Вы узнаете о доступных инструментах для написания
и выполнения тестов, и напишите первые простые тесты
👉link: https://bit.ly/2OhG9Ls
Во второй части познакомитесь с самыми популярными фреймворками
такими как Django и Flask научитесь писать интеграционные тесты
для приложения написаном на одном из этих фреймворков
👉link: https://bit.ly/2JqG6ht
В третей части узнаете как тестировать в разных средах,
как настроить простой CI, проверите производительность приложения
и даже посмотрите на проблемы безопасности.
👉link: https://bit.ly/2Fr4JH6
#python #pytest #tests #unittest
В этом руководстве вы узнаете, как создать базовый тест,
выполнить его и найти все баги, до того как это сделают пользователи!
В певрой части Вы узнаете о доступных инструментах для написания
и выполнения тестов, и напишите первые простые тесты
👉link: https://bit.ly/2OhG9Ls
Во второй части познакомитесь с самыми популярными фреймворками
такими как Django и Flask научитесь писать интеграционные тесты
для приложения написаном на одном из этих фреймворков
👉link: https://bit.ly/2JqG6ht
В третей части узнаете как тестировать в разных средах,
как настроить простой CI, проверите производительность приложения
и даже посмотрите на проблемы безопасности.
👉link: https://bit.ly/2Fr4JH6
Модуль Collections в Python
#python
Collections - это встроенный модуль Python,
реализующий специализированные контейнеры типов данных.
В статье рассмотрены несколько структур данных,
представленных в этом модуле и являющимися альтернативой
встроенным стандартным контейнерам Python
-
-
-
-
👉 link: https://bit.ly/2U95tJ9
#python
Collections - это встроенный модуль Python,
реализующий специализированные контейнеры типов данных.
В статье рассмотрены несколько структур данных,
представленных в этом модуле и являющимися альтернативой
встроенным стандартным контейнерам Python
-
namedtuple-
defaultdict-
OrderedDict-
Counter👉 link: https://bit.ly/2U95tJ9
Monkey Patching in Python
#python #mock
Статья полезна для понимания как работают mock’и в Python
Множество примеров помогут в этом не легком деле
Рассматриваются такие вопросы:
- что это такое
- где приминяется
- как это провернуть
👉link: https://bit.ly/2Ugq5Qx
#python #mock
Статья полезна для понимания как работают mock’и в Python
Множество примеров помогут в этом не легком деле
Рассматриваются такие вопросы:
- что это такое
- где приминяется
- как это провернуть
👉link: https://bit.ly/2Ugq5Qx
Инструменты для создания виртуального окружения в Python
#python #env
Для создания виртуального окружения в Python существует множество инструментов.
Какой из них лучше выбрать?
В статье рассмотрены несколько вариантов, а также их преимущества и недостатки.
Рассматрены такие инструменты:
- virtualenv
- pew
- venv
- pipenv
👉 link: http://bit.ly/2v7Q9yi
#python #env
Для создания виртуального окружения в Python существует множество инструментов.
Какой из них лучше выбрать?
В статье рассмотрены несколько вариантов, а также их преимущества и недостатки.
Рассматрены такие инструменты:
- virtualenv
- pew
- venv
- pipenv
👉 link: http://bit.ly/2v7Q9yi
Making your Python decorators even better
#python
Статья о том как создавать правильные декораторы 😉
используя для этого модуль
👉 link: http://bit.ly/2V8Diq6
#python
Статья о том как создавать правильные декораторы 😉
используя для этого модуль
functool и декоратор @wraps👉 link: http://bit.ly/2V8Diq6