Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Валерий Меньшиков — Автотесты и Кодогенерация P...

Ozon Tech
January 18, 2023

Валерий Меньшиков — Автотесты и Кодогенерация Python-клиентов для gRPC и REST-сервисов

Ozon Tech

January 18, 2023
Tweet

More Decks by Ozon Tech

Other Decks in Technology

Transcript

  1. •Рассказать об инструментах, использованных для генерации кода и возможностях их

    кастомизации •Рассказать об интеграции этих инструментов в процесс автотестирования, о плюсах и удобствах такого подхода
  2. • Быстро и понятно, если тест маленький • Большой тест

    будет трудно читаемым • Нет логирования • Нет валидации входных и выходных данных • Не выделено никаких функций, проблематично переиспользование кода
  3. • Валидация входных и выходных данных • Есть прослойка в

    виде логирования • Тест выглядит более осмысленным • Удобное использование методов • Ошибки при написании кода копипастой • Трудоемкое описание моделей • Тяжело поддерживать
  4. • 1-2 QA на группу разработки • В разработке есть

    как ручные задачи, так и задачи на автоматизацию • Около 100 микросервисов • Клиенты моментально устаревают, а поддерживать их некому • В каждой группе разработки клиенты пишут по-своему • Монорепозиторий, в котором тяжело разобраться
  5. • Быстро вносить фиксы и фичи в генератор • Разработка

    тестов сильно ускорилась • Единообразный код клиентов • Тяжело поддерживать • Баги и т.п.
  6. • Бесплатный • Поддерживается большим сообществом • Используется в ряде

    больших проектов и компаний (CISCO, IBM, Kubernetes и др.) • Возможность кастомизации выходного кода • Готовый к установке пакет • Генерация для разных языков программирования • Нельзя оперативно вносить правки и фиксы в инструмент
  7. •Доработаны шаблоны под наши цели •Собран docker-контейнер •Написан gitlab job

    с генерацией клиента и публикацией пакета на artifactory
  8. •Дешево и просто •Клиент генерируется в пайплайне разработки •Логирование и

    Allure декораторы в шаблонах •Сохраняется версионность •Экономия времени •Простая установка и использование
  9. •Был форкнут проект, поправлены шаблоны для добавления логов и синхронных

    методов •Собран docker-образ •Написан джоб для генерации и публикации пакета на artifactory
  10. •ozbetterproto •Быстро и дешево •Простой и понятный gRPC клиент •Логирование

    •Валидация данных •Клиенты хранятся в отдельных пакетах на artifactory
  11. Email: [email protected] Telegram: https://t.me/effective_qa Instagram: @menshikov_valeriy *Instagram — проект Meta

    Platforms Inc., деятельность которой запрещена на территории Российской Федерации. Меньшиков Валерий Ведущий специалист по тестированию