230.10K

delivery_autotests_presentation

1.

QA Automation
Стабилизация и расширение
автотестов доставки
Переход от хрупких time.sleep-сценариев к устойчивой системе с
ожиданием реальных состояний, атомарной подчисткой,
поддержкой mms/mmi и MSB-финансовыми проверками.
state-based waits
Delivery QA Automation
cleanup
mms / mmi

устойчивее

атомарнее

финансы
MSB
MSB refunds
1

2.

ЧТО ИЗМЕНИЛИ
От time.sleep к ожиданию состояния
Было
Теперь
Ожидание “наугад”
Ожидание реального состояния
• жёсткие time.sleep
• нужный статус заказа
• флаки из-за таймингов
• применение настройки
• лишнее ожидание, если система ответила
быстрее
• изменение баланса и автоотмена
• финальный статус перед удалением смены
меньше флаков • быстрее прогоны
Delivery QA Automation
2

3.

НАДЁЖНОСТЬ
Атомарность и безопасная подчистка
Если тест падает на середине сценария, он всё равно пытается вернуть стенд в
безопасное состояние.
1
2
3
4
5
Отменить
активный заказ
Довести возврат
до финала
Удалить
смену
Удалить временные
настройки
Убрать
блокировки
Результат: один упавший тест меньше влияет на следующие прогоны и не оставляет “зависшие” заказы или смены.
Delivery QA Automation
3

4.

MMS / MMI
Один набор тестов для двух стендов
mms
mmi
backend / frontend URL
курьеры, мерчанты
area id, place id
настройки схем
backend / frontend URL
курьеры, мерчанты
area id, place id
настройки схем
pytest --env mmi
Delivery QA Automation
pytest --env mms
4

5.

РАСШИРЕНИЕ ПОКРЫТИЯ
MSB: новая ветка сценариев
MSB
merchant token
MSB
admin token
Курьерский
flow
MSB
courier token
Создание
MSB-заказа
Отмена /
доставка
Смена
курьера
Баланс
мерчанта
MSB-проверки проходят обычный курьерский flow, но дополнительно проверяют деньги
и возвраты.
Delivery QA Automation
5

6.

БАЛАНС МЕРЧАНТА
Возвраты MSB: покрытая финансовая логика
Сценарий
Возврат
Успешная доставка
0%
Отмена в 101
100%
Отмена в 104 / 201
75%
Отмена в 203
50%
Отмена в 204 / 205
до создания заказа
после списания delivery_cost
0% + return flow
Автоотмена поиска курьера
100%
Клиент не отвечает
0%
Delivery QA Automation
Проверяем баланс в 3
точках
после доставки или отмены
Расчёты выполняются через Decimal, чтобы избежать
ошибок округления в финансовых проверках.
6

7.

ПОД КАПОТОМ
Технически важные изменения

Ожидания по
статусам
вместо sleep

Cleanup для
заказов,
смен и настроек

Параметр --env
для окружений

Decimal для
баланса MSB

Allure
descriptions
и steps

Маркер msb
для запуска

MSB fixtures
и helpers
Фокус: стабильность, повторяемость,
диагностируемость.
Delivery QA Automation
7

8.

ЭФФЕКТ
Что это дало
1
Меньше нестабильных
падений
из-за таймингов
2
Меньше ручной чистки
стенда после падений
3
Тесты безопаснее
запускать пачками
4
Один код работает
на mms и mmi
5
MSB покрывает не только
статусы, но и деньги
6
Проще анализировать
падения в Allure
Главный результат — автотесты стали более устойчивой системой, а не набором
зависимых от времени сценариев.
Delivery QA Automation
8

9.

КОМАНДЫ
Как запускать и короткий итог
pytest --env mmi
pytest --env mms
pytest --env mmi -m msb
pytest --env mmi tests/test_msb_orders.py::test_create_msb_order_to_delivered
Итог: автотесты доставки ждут реальные состояния, чистят за собой данные, запускаются на двух
стендах и покрывают финансовые возвраты MSB.
Delivery QA Automation
9
English     Русский Правила