Автоматизированное тестирование веб-сервиса для покупки туров:
- Обычная оплата по дебетовой карте
- Кредитование по данным банковской карты
Технологии:
Инструменты:
graph LR
A[Автотесты] --> B[aqa-shop.jar:8080]
B --> C[Payment Gate]
B --> D[Credit Gate]
B --> E[(MySQL:3306)]
B --> F[(PostgreSQL:5432)]
C & D --> G[Bank Simulator:9999]
tour-pay-gateway-tests/
├── artifacts/aqa-shop.jar # Тестируемый веб-сервис
├── documentation # Документация
├── gate-simulator/ # Эмулятор банка
├── src/
│ └── test/java/ # Автотесты (UI + DB + API)
├── application.properties # Конфигурация для подключения к СУБД и банковским сервисам
├── build.gradle # Файл конфигурации Gradle с зависимостями для Selenide, JUnit, Allure и др.
└── docker-compose.yml # Контейнеры MySQL + PostgreSQL + Bank Simulator
- Клонируйте и откройте проект в IDEA:
git clone https://github.com/levvolkov/tour-pay-gateway-tests.git
- Запустите Docker Desktop и выполните:
# Соберет контейнеры MySQL, PostgreSQL, Bank Simulator
docker compose up -d
# Для запуска приложение на MySQL СУБД
java "-Dspring.datasource.url=jdbc:mysql://localhost:3306/app" -jar artifacts/aqa-shop.jar
# Для запуска приложение на PostgreSQL СУБД
java "-Dspring.datasource.url=jdbc:postgresql://localhost:5432/app" -jar artifacts/aqa-shop.jar
- Запустите автотесты:
# Для MySQL:
./gradlew clean test "-Ddb.url=jdbc:mysql://localhost:3306/app"
# Для PostgreSQL:
./gradlew clean test "-Ddb.url=jdbc:postgresql://localhost:5432/app"
# Для API тестов (если необходимо отдельно)
./gradlew clean test --tests GateSimulatorApiTest
# Просмотр Allure-отчёта:
./gradlew allureServe
Ошибка запуска приложения: если порт занят
# Найти PID процесса, использующий порт:
lsof -i :8080
# Принудительное завершение с помощью флага -9:
kill -9 <PID>