Как стать автором
Обновить
13
0

Пользователь

Отправить сообщение

Глубокое погружение в хуки pytest: как и зачем их использовать

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1.7K

pytest — один из самых популярных и мощных инструментов для тестирования в Python. Помимо своей простоты и выразительности, он предлагает мощный механизм расширения через хуки. В этой статье мы разберем, что такое хуки в pytest, как они работают, и как их можно использовать для настройки и расширения поведения вашего тестового окружения.

Читать далее
Всего голосов 6: ↑4 и ↓2+4
Комментарии0

Генерация документации из моделей с помощью Pydantic

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров3.7K

Привет, меня зовут Роман Брылунов, я QA Automation в команде сервиса транспорта 2ГИС. Мы автоматизируем сервисы транспортных сценариев, таких как построение маршрутов для разных видов транспорта, построение пешеходных маршрутов, решение задачи коммивояжера. Основная часть наших тестов — функциональные тесты логики приложения.

С сервисами общаемся по HTTP, но есть и несколько внутренних сервисов со взаимодействием по gRPC. Все ответы, полученные от сервисов, мы предварительно валидируем перед обработкой в тесте. Для валидации используем библиотеку Pydantic. Это позволяет нам описывать формат взаимодействия с помощью моделей и обрабатывать ответы в виде Python-объектов вместо словаря после стандартного парсинга JSON. Тесты встроены в CI, успешное прохождение тестов является блокирующим условием для влития кода. Таким образом, чтобы внести изменения в API, необходимо актуализировать модели в тестах. В противном случае ответ от сервиса не пройдёт валидацию при прогоне тестов. 

Мы стараемся всесторонне подходить к контролю качества продукта, в том числе хотим, чтобы у продукта была красивая и актуальная документация. У наших сервисов была документация, но она обновлялась вручную. А у нас есть модели запросов и ответов, которые точно соответствуют текущему формату API. Мы подумали, что будет здорово использовать эти модели для формирования документации. Попробовали и успешно внедрили. Расскажу о том, как можно это сделать.

Читать далее
Всего голосов 9: ↑9 и ↓0+10
Комментарии4

Автотесты E2E для самых маленьких

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5.2K

Автотесты E2E для самых маленьких

История о том, как можно делать автотесты без автотестеров (ну почти)

Дано:

1. Проект с небольшим бюджетом

2. Максимальное возможное количество тестировщиков на проекте = 2

3. Тим лид или автоматизатор, у которого есть еще несколько других проектов. Т.е. постоянно писать и обслуживать тесты не может

Найти:

1. Регрессионное тестирование за минимальное время

2. Потратить на это минимальное количество денег/времени/сил

Читать далее
Всего голосов 12: ↑12 и ↓0+14
Комментарии5

Тестируем внешнее django-приложение при помощи pytest

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров2.2K

Я не буду спрашивать, как вы попали в такую ситуацию. Я в неё как-то попала, значит, и вы тоже могли. Я просто расскажу, как из неё выбраться.

Итак, у вас есть джанго-приложение, апишка к нему, и вы хотите написать автотесты на пайтест, находясь вне этого джанго-приложения. Погнали.

Читать далее
Всего голосов 3: ↑2 и ↓1+3
Комментарии1

Вы должны перестать вручную писать Dockerfile'ы

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров55K

Вы тоже устали вручную заполнять Dockerfile и docker-compose.yaml под каждый новый проект?

Я всегда задумывался, применяю ли я известные best practices, когда пишу конфиг для Docker, и не занесу ли я случайно какие-нибудь уязвимости, вручную заполняя конфиг-файлы.

Что же, теперь мне больше не придется беспокоиться об этом, благодаря добрым людям из Docker, которые недавно реализовали инструмент для этого - docker init .

Интересно, как экономить время и быстро генерировать конфиги, даже если вы не профи в Docker? Прошу под кат.

Читать далее
Всего голосов 74: ↑71 и ↓3+76
Комментарии66

Основные типы распределений вероятностей в примерах

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров22K

Статистические исследования и эксперименты являются краеугольным камнем развития любой компании. Особенно это касается интернет-проектов, где учёт количества пользователей в день, времени нахождения на сайте, нажатий на целевые кнопки, покупок товаров является обычным и необходимым явлением. Любые изменения в пользовательском опыте на сайте компании (внешний вид, структура, контент) приводят к изменениям в работе пользователя и, как результат, изменения наблюдаются в собираемых данных. Важным элементом анализа изменений данных и его фундаментом является использование основных типов распределений случайных величин, от понимания которых напрямую зависит качество оценки значимости наблюдаемого изменения. Рассмотрим их подробнее на наглядных примерах.

Читать далее
Всего голосов 58: ↑58 и ↓0+58
Комментарии11

Как правильно писать API авто тесты на Python

Время на прочтение19 мин
Количество просмотров51K

Как правильно писать API авто тесты на Python используя Pytest, Pydantic, Httpx, Allure.

Эта статья как продолжение статьи Как правильно писать UI авто тесты на Python. Если мы говорим про UI автотесты, то тут хотя бы есть паттерны Page Object, Pagefactory; для API автотестов таких паттернов нет. Да, существуют общие паттерны, по типу Decorator, SIngletone, Facade, Abstract Factory, но это не то, что поможет протестировать бизнес логику на уровне API тестируемой системы

Читать далее
Всего голосов 14: ↑9 и ↓5+5
Комментарии17

Пишем АПИ автотесты на Python по шагам

Уровень сложностиСредний
Время на прочтение27 мин
Количество просмотров27K

Всем привет! В этой статье мы пошагово покроем тестами REST API на Python. Данная статья будет крайне полезна как начинающим, так и действующим тестировщикам и автоматизаторам, а также специалистам из смежных направлений.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии8

Делаем PageObject правильно. Удешевляем тестирование и снижаем порог вхождения

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров13K

Привет, меня зовут Коля, занимаюсь тестированием 7 лет, автоматизацией — 6 лет. Так уж сложилось, что не особо люблю WebUI-тесты, но почему-то именно они у меня получаются лучше всего.

В один день мне позвонил мой друг Рома и сказал: «Коля, помнишь ты у нас автотесты делал с селениумом? Помоги мне сделать так же красиво».

Отправив Роме ссылку на свой гитхаб и устроив пару созвонов с объяснениями, что и как работает, я добился от него заветного «Я понял». 

Спустя два дня Рома позвонил снова: «Коля, я всё понял, а вот ребята в моей команде — нет. Помоги мне объяснить им».

Внутри я расскажу от том, как:

ускорить написание тестов;

снизить затраты на их поддержку;

прокачаться в написании фреймворков;

сэкономить деньги компании;

сохранить нервы сотрудников.

Читать далее
Всего голосов 44: ↑39 и ↓5+35
Комментарии17

Сервис проверки пользовательских файлов «powered by pytest»: нужно повозиться, но оно того стоит

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров3.5K

Возникла задача проверки нескольких типов пользовательских документов Excel. Проверка должна покрывать такие аспекты как корректность шаблона (наличие ожидаемых страниц, колонок таблиц) и корректность данных (присутствие обязательных значений, корректность значений точки зрения форматов, отсутствие дубликации, итд).

Пользователю нужно возвращать информацию "что не так с файлом": какую проверку не прошел файл и где конкретно в файле проблемные данные.

Эта задача - про качество данных и очень напоминает тестирование. Так почему не использовать фреймворк тестирования pytest, и не написать тесты на каждый проверяемый аспект и для каждого типа файлов? Однако, есть небольшое "но". проверка должна быть реализована в качестве сервиса, чтобы встраиваться в более широкий процесс обработки пользовательских документов.

Давайте посмотрим, как заставить pytest работать внутри сервиса. Это не так тривиально, как может показаться на первый взгляд.

Читать далее
Всего голосов 8: ↑6 и ↓2+7
Комментарии7

Исчерпывающее руководство по различным типам API

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров32K

API (Application Programming Interface, программный интерфейс приложения), является жизненно важным компонентом в современном ландшафте разработки программного обеспечения, обеспечивая строительные блоки для взаимодействия приложений друг с другом. В этой статье рассмотрим пять основных типов API: REST, SOAP, WebSocket, gRPC и GraphQL, чтобы получить более четкое представление об их функциях, особенностях и идеальных сценариях использования.

Читать далее
Всего голосов 15: ↑14 и ↓1+15
Комментарии2

Обучите YOLO NAS пользовательскому набору данных

Время на прочтение13 мин
Количество просмотров5.8K

На данный момент YOLO-NAS является новейшей моделью обнаружения объектов YOLO. С самого начала он превосходит все другие модели YOLO по точности. Предварительно обученные модели YOLO-NAS обнаруживают больше объектов с большей точностью по сравнению с предыдущими моделями YOLO. Но как нам обучить YOLO NAS пользовательскому набору данных? Это и будет нашей целью в этой статье – обучить различные модели YOLO NAS пользовательскому набору данных.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии8

Как айтишник гигантские арбузы в средней полосе выращивал. Часть 1

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров24K

Хобби коллег очень многогранны. Сегодня расскажем об ИТ-шном подходе к выращиванию арбузов в регионе, где, казалось бы, нормально вызревать они не должны. Наш девопс, Игорь Иванов, объединил системный подход к сбору информации и комплектующие с AliExpress и из магазинов для садоводов, и уже не первый год собирает отличный урожай. 

Своеобразная “инструкцию для начинающих” получилась довольно объемной. Мы  разделили ее на две части: в первой автор разбирает теоретические основы, а во второй переходит к практике.

Осторожно, много фото!

Читать далее
Всего голосов 72: ↑71 и ↓1+84
Комментарии23

Правильное подключение к БД: почему, зачем и как

Время на прочтение5 мин
Количество просмотров16K


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


В этой небольшой статье, я последовательно буду создавать подключения к БД, а затем показывать на примере, что может пойти не так. На мой взгляд, понимание, почему нужно делать именно так, а не иначе, лучше, чем простое заучивание и использование паттернов.


Статья рассчитана на начинающих и всех, кто интересуется этой темой.

Читать дальше →
Всего голосов 16: ↑15 и ↓1+16
Комментарии18

Учимся создавать пакеты Python

Время на прочтение8 мин
Количество просмотров44K
imageПочему важно уметь создавать пакеты Python?
• Пакеты легко устанавливаются (pip install demo).
• Пакеты упрощают разработку (Команда pip install -e устанавливает ваш пакет и следит за тем, чтобы он сам обновлялся в ходе всего процесса разработки).
• Пакеты легко запускать и тестировать (from demo.main import say_hello, а затем тестируем функцию).
• Пакеты легко версионировать, при этом вы не рискуете нарушить работу кода, зависящего от этого пакета (pip install demo==1.0.3).
Читать дальше →
Всего голосов 20: ↑18 и ↓2+24
Комментарии14

Фразы на английском языке для модерации Q&A session

Время на прочтение4 мин
Количество просмотров1.9K

Я посмотрела все видео канала Talks at Google за последний месяц. Это были интервью с журналистами и писателями, музыкантами, предпринимателями, учеными и преподавателями университетов, и людьми, которые кардинально изменили свой карьерный путь.

Меня заинтересовала тема сессии вопросов и ответов, в частности, каким образом ее модерирует ведущий, как можно задавать вопросы, дипломатично попросить уточнить, дополнить примерами и деликатно подвести итог. С другой стороны, как спикер поддерживает диалог и передает слово коллеге, ссылается на темы, которые поднимались ранее в обсуждении. Таким образом, предметом изучения стали стратегии проведения беседы и английские фразы, которые были использованы для того, чтобы разнообразить речь во время доклада или обсуждения дел.

Читать далее
Всего голосов 10: ↑8 и ↓2+7
Комментарии0

Деловое письмо на английском языке как особый вид искусства

Время на прочтение4 мин
Количество просмотров5.3K

Я - гражданка Великобритании, путешествую и работаю в России несколько лет. За это время мне приходилось прочесть довольно много писем, написанных русскими на английском. Хочется отметить, что я впечатлена качеством этих писем, уровнем владения английским. Большинство писем написано очень хорошо, без грамматических ошибок.

Однако, очень часто встречаются неточности перевода, которые систематически допускают неносители языка. Иногда эти неточности непринципиальны, а иногда критичны, поскольку способны отпугнуть, обидеть или попросту оставить неприятное впечатление у читателя. Давайте посмотрим как правильно писать деловое письмо на английском языке.

Читать далее
Всего голосов 13: ↑11 и ↓2+12
Комментарии17

Пишем Telegram бот текущей погоды по IP адресу на Python aiogram

Время на прочтение11 мин
Количество просмотров61K

Штош. В этой статье я расскажу вам, как создать Telegram бота, который получает текущую погоду по IP адресу. Мы будем использовать язык Python и асинхронную библиотеку для взаимодействия с Telegram Bot API - aiogram.

Читать далее
Всего голосов 16: ↑8 и ↓8+4
Комментарии51

Как разработать тесты для устройства умного дома?

Время на прочтение16 мин
Количество просмотров4.2K

Как было сказано в сериале "Теория большого взрыва": "Все становится лучше с Bluetooth". Повсеместно бытовые устройства приобретают дополнительный радио-модуль, что позволяет производителю обозначить их маркетинговым термином "smart" и объединять их в общую инфраструктуру, которая является одной из граней Интернета вещей. Но, любое "умное" устройство, кроме непосредственно электронной составляющей, отвечающей за основную функцию (нагревательный элемент в чайнике или утюге, двигатель в электрической зубной щетке и др.), содержит несколько важных программных компонентов, которые также надо тестировать и испытывать на безопасность, надежность и предсказуемость. В этом цикле статей мы поговорим о важных аспектах тестирования устройств интернета вещей, о темпоральной логике и конечных автоматах и о способах автоматизации проверки умных устройств.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии3

Изменения физики в Unity 2022.1: расширение робототехнического инструментария

Время на прочтение7 мин
Количество просмотров3.1K

Моделируйте продвинутых, ориентирующихся в окружающей среде роботов с помощью обновленных инструментов. Раскройте динамику в ваших проектах с помощью полностью обновленного Physics Debugger. Воспользуйтесь преимуществами повышения производительности интерполяции, пакетных запросах и многого другого.

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Комментарии0
1

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Test Automation Engineer
Senior
Python
RESTful API