Дипломный проект — автоматизация тестирования комплексного сервиса, взаимодействующего с СУБД и API платежной системы.
- Если у вас возник вопрос или проблема, попробуйте сначала самостоятельно найти ответ в интернете. Навык поиска информации пригодится вам в любой профессиональной деятельности. Если ответ не нашёлся, можно уточнить у руководителя по дипломной работе.
- Если у вас набирается несколько вопросов, присылайте их в виде нумерованного списка. Так дипломному руководителю будет проще отвечать на каждый из них.
- Для лучшего понимания контекста прикрепите к вопросу скриншоты и стрелкой укажите, что именно вызывает вопрос. Программу для создания скриншотов можно скачать по ссылке.
- По возможности задавайте вопросы в комментариях к коду.
- Формулируйте свои вопросы чётко, дополняя их деталями. На сообщения «Ничего не работает», «Всё сломалось» дипломный руководитель не сможет дать комментарии без дополнительных уточнений. Это затянет процесс получения ответа.
- Постарайтесь набраться терпения в ожидании ответа на свои вопросы. Дипломные руководители Нетологии — практикующие специалисты, поэтому они не всегда могут отвечать моментально. Зато их практика даёт возможность делиться с вами не только теорией, но и ценным прикладным опытом.
Как правильно оформлять вопросы:
- Опубликовать последнюю версию вашего кода на GitHub.
- Включить в репозитории Issues.
- Завести новое Issue, в котором описать, в чём заключается проблема, и приложить скриншот.
- Если в консоли любого сервиса есть ошибки, сообщить о них тоже, скопировав текст ошибки.
Рекомендации по работе над дипломом:
- Не откладывайте надолго начало работы над дипломом. В таком случае у вас останется больше времени на получение рекомендаций от руководителя и доработку диплома.
- Разбейте работу над дипломом на части и выполняйте их поочерёдно. Вы будете успевать учитывать комментарии от руководителя и не терять мотивацию на полпути.
Приложение — это веб-сервис, который предлагает купить тур по определённой цене двумя способами:
- Обычная оплата по дебетовой карте.
- Уникальная технология: выдача кредита по данным банковской карты.
Само приложение не обрабатывает данные по картам, а пересылает их банковским сервисам:
- сервису платежей, далее Payment Gate;
- кредитному сервису, далее Credit Gate.
Приложение в собственной СУБД должно сохранять информацию о том, успешно ли был совершён платёж и каким способом. Данные карт при этом сохранять не допускается.
Важно: в реальной жизни приложение не должно пропускать через себя данные карт, если у него нет PCI DSS, но мы сделали именно так ;)
Ваша ключевая задача — автоматизировать позитивные и негативные сценарии покупки тура.
Задача разбита на 5 этапа:
- Разворачивание и запуск приложения
- Планирование автоматизации тестирования.
- Непосредственно сама автоматизация.
- Подготовка отчётных документов по итогам автоматизированного тестирования.
- Подготовка отчётных документов по итогам автоматизации.
Все материалы — документы, авто-тесты, открытые issue, отчёты и другие — должны быть размещены в одном публичном репозитории. Ссылку на него вы будете отправлять дипломному руководителю.
Приложение состоит из трех частей:
-
База данных (Заявлена поддержка как MySQL, так и PostgreSQL). В файле
application.propertiesпоказан пример пподключения именно для MySQL. Для PostgreSQL необходимо будет самостоятельно установить правильные параметры. Внимание - БД должна быть запущена и подготовлена перед запуском основного приложения. Учётные данные и URL для подключения задаются в файлеapplication.properties. -
Платежный шлюз (точнее его эмуляция). В реальной работы мы часто используем моки различных сервисов, например платежных систем. Эмулятор расположен в каталоге gate-simulator. В нашем случае этот эмулятор ориентируется только на тестовый номер карты. По одной карте сервис успешно "проводит" оплату, по другой - отклоняет. В файле
data.jsonуказаны номера этих карт. Эмулятор работает с обоими способами платежей, но каждый обрабатывается отдельным URL. Для запуска эмулятора потребуется установить Node.js на свой компьютер и запустить эмулятор командойnpm startна порту 9999. -
Основное приложение с веб-интерфейсом. Приложение написано на языке Java и поэтому необходимо будет установить Java SDK на свой компьютер (или воспользоваться Docker/Docker-Compose). Приложение расположено в файле
aqa-shop.jarи запускаетсяjava -jar aqa-shop.jarна порту 8080. В файлеapplication.propertiesприведён ряд типовых настроек:
- учётные данные и URL для подключения к СУБД;
- URL-адреса банковских сервисов.
В идеале создать свой файл docker-compose.yml в корне проекта, в котором описать все три контейнера. Шаблон выглядит следующим образом
```yaml
version: '3.8'
services:
mysql:
...
gate-simulator:
...
aqa-shop:
...
volumes:
...
```
Попробуйте составить такой файл самостоятельно, используя навыки поиска информации в интернете, или работая с популярными LLM (Например deepseek или Qwen.ai). При возникновении проблем обращайтесь к дипломному руководителю, который подскажет.
В течение 3-5 дней с начала работы над дипломом вы должны отправить на проверку дипломному руководителю план автоматизации, в котором описаны:
- перечень автоматизируемых сценариев;
- перечень используемых инструментов с обоснованием выбора;
- перечень и описание возможных рисков при автоматизации;
- интервальная оценка с учётом рисков в часах;
- план сдачи работ: когда будут готовы автотесты, результаты их прогона.
План автоматизации оформите в виде файла с именем Plan.md, залейте в репозиторий вашего проекта и вставьте ссылку на него в поле «Ссылка на решение». Затем нажмите «Отправить решение».
Дождитесь, когда дипломный руководитель проверит и одобрит ваш план автоматизации, и после этого приступайте к следующим этапам.
На этом этапе вы пишете автотесты и прогоняете их. Требований по подключению CI нет, но есть требования к тестам. Обязательно должны быть:
- UI-тесты (Selenium);
- репорты (Allure);
- запросы в базу, проверяющие корректность внесения информации приложением.
Код автотестов загружается в репозиторий вашего проекта вместе с отчётными документами, файлами и конфигурациями, необходимыми для запуска.
В файле README.md должна быть описана процедура запуска автотестов. Если для запуска нужно заранее установить, настроить, запустить какое-то ПО, то это тоже должно быть описано. Не забудьте про файл requirements.txt и создание виртуального окружения.
Важно: если после git clone и выполнения шагов, описанных в README.md, авто-тесты не запускаются, то диплом отправляется на доработку.
В качестве отчётных документов прикладываются issue со скриншотами и описанием багов, формируется документ Report.md, в котором содержится отчёт о проведённом тестировании:
- краткое описание;
- количество тест-кейсов;
- процент успешных и не успешных тест-кейсов;
- общие рекомендации.
Не забудьте, что помимо документа в систему автоматизации должны быть интегрированы отчёты Allure.
В качестве отчётных документов формируется документ Summary.md, в котором содержится отчёт о проведённой автоматизации:
- что было запланировано и что реализовано;
- причины, по которым что-то не было реализовано;
- сработавшие риски;
- общий итог по времени: сколько запланировали и сколько выполнили с обоснованием расхождения.
Когда мы просим вас подготовить документы разного формата, достаточно составить текст объёмом не больше страницы A4.
Во время работы над дипломом важно прислушиваться к дипломному руководителю и его рекомендациям. Он будет ставить задачи, которые нужно выполнять для достижения лучших результатов обучения. В его интересах также ваше успешное прохождеие курса и получение диплома о его завершении.
Важно: выполнение или не выполнение этого раздела не влияет на получение диплома.
Если вы чувствуете в себе силы, мы предлагаем вам попробовать интегрировать всю систему с GitHub Actions или любой другой CI.
- В GitHub Actions есть Docker и даже Docker Compose.
- В GitHub Actions поддерживаются Node.js, MySQL, PostgreSQL, их можно установить.
- Можно вставлять простейшие
sleepпрямо в сценариях командной строки, чтобы дать «подняться» СУБД, основному приложению или симулятору платежного шлюза.
Не читайте этот раздел сразу. Попытайтесь сначала решить задачу самостоятельно :)
На что обратить внимание.
- Приложение усыпано багами: от безобидных до очень критичных. Если вы не нашли ни одного, значит, попробуйте ещё раз :)
- Если есть баги, то тесты не должны быть зелёными.
- Если есть баги, то должны быть баг-репорты в issue.
- Обращайте внимание на все баги. Особенно внимательно смотрите на обработку платежей веб-интерфейсом и их фиксацию в базе данных.
