Евгений Сайты › Peppers Сбер ID
Сайты, SEO и GEO, реклама, чат-боты, ИИ и дизайн | Москва
Рейтинг
9 371
№ 111 в каталоге
Отзывы
Профессионализм
9/10
Коммуникация
9 /10
Город
Москва
Опыт работы
11 лет
На сайте с
2016 года
Юридический статус
Самозанятый
Freelance.Boutique
Премиум-сервис для лучших исполнителей

Автотесты для интернет-магазина детской одежды: автоматизация тестирования на Python и Selenium Webdriver, тестирование API, ночной прогон в CI

Используемые навыки Selenium Webdriver Автоматизация тестирования Веб-тестирование Тестирование API Тестирование веб-сайта

Описание

Набор автотестов и план проверок для интернет-магазина детской одежды: корзина, промокоды, фильтр по росту и размеру, оформление заказа и личный кабинет проверяются каждую ночь без участия человека. Работу сделал Евгений Росляков. Он занимается сайтами и их проверкой с 2016 года. Самозанятый, работает по договору, юрлицам выдаёт закрывающие документы. Заказы берёт в Москве и удалённо.

Магазин обновляется часто: новые коллекции, акции, правки в доставке. После почти каждого релиза что-нибудь ломалось. То промокод перестаёт сочетаться со скидкой сезонной распродажи, то в корзину не добавляется размер 98. О поломке команда узнавала от покупателей и из отзывов, а не от себя.

Тестировщика в штате не было. Разработчики глазами проверяли то, что только что изменили, а соседние места оставались без присмотра.

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

Решение

Сначала составил план. Тестирование веб-сайта я построил вокруг путей, на которых магазин теряет деньги: поиск товара, фильтр по размеру и росту, карточка с выбором размера, корзина, промокод, оплата в тестовом режиме, личный кабинет с историей заказов. Для каждого пути записал шаги и ожидаемый результат, а затем разделил проверки на те, что идут каждую ночь, и те, что нужны только перед релизом.

Вся автоматизация тестирования написана на Python и pytest. Браузером управляет Selenium Webdriver: тесты идут в Chrome и Firefox, а отдельный набор прогоняется в узком окне, как на телефоне, потому что с телефонов заходит много покупателей. Страницы описаны по шаблону Page Object: у каждой свой класс, и когда разработчики меняют вёрстку кнопки, правят одно место, а не двадцать тестов. Ожидания явные, без пауз вроде «подождать три секунды», поэтому тесты не мигают из-за медленной загрузки.

Тестирование API вынесено в отдельный набор. Он быстрее браузерного и ловит то, чего глазами не видно: корзина считает сумму с учётом промокода, остатки не уходят в минус, доставка возвращает верные сроки по городам. Запросы идут напрямую к серверу, без интерфейса.

Ночной прогон запускается в CI. Утром в рабочий чат приходит короткий отчёт: сколько сценариев прошло, что упало, скриншот и шаг, на котором остановился тест. Падение сразу понятно, не нужно разбираться в логах.

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

Результат

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

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

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

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

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

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Чат-боты для продаж: Telegram-бот-магазин фермерских сыров на Python и Telegram API с интеграцией платёжного шлюза и обработкой платежей
Чат-боты для продаж: Telegram-бот-магазин фермерских сыров на Python и Telegram API с интеграцией платёжного шлюза и обработкой платежей
25
Веб-разработка и IT Создание сайта с интерактивами для планетария: флеш баннеры, экспонаты на Flash и Silverlight переписаны на HTML5, киоски в браузере
Создание сайта с интерактивами для планетария: флеш баннеры, экспонаты на Flash и Silverlight переписаны на HTML5, киоски в браузере
16
Веб-разработка и IT Приложение для iPhone и iPad для груминг-салона в Москве: запись, бонусы и профиль питомца, разработка iOS на Swift
Приложение для iPhone и iPad для груминг-салона в Москве: запись, бонусы и профиль питомца, разработка iOS на Swift
16
Веб-разработка и IT Сайт коттеджного посёлка Татаринцево ИЖС на WordPress: своя тема и дизайн WordPress, генплан с ценами, картография маршрута, PHP
Сайт коттеджного посёлка Татаринцево ИЖС на WordPress: своя тема и дизайн WordPress, генплан с ценами, картография маршрута, PHP
80