Skip to content

Latest commit

 

History

67 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PFLB Test Project

Static Badge Static Badge

📑 Оглавление

1️⃣ Описание
2️⃣ API кейсы

3️⃣ UI кейсы

Описание

Этот проект — включает тестирование следующих сервисов:

  • UI 👉 Banking Project
  • Внутреннее API тестового полигона PFLB

  • Автотесты к кажому из проектов лежат в соответствующих модулях API и UI соответственно.
  • На ветке gh_pages доступен Allure-отчёт: 👉 Актуальный Allure отчёт
  • CI workflow: .github/workflows/runTests.yml

🛠 Установка и запуск

✅ Требования

  • Java 17+
  • Maven 3.8+
  • Git
  • Allure CLI (для генерации отчётов)

🚀 Пошаговый запуск

📥 1. Клонировать проект

git clone https://github.com/zen2281488/jqe_ui_api.git
cd jqe_ui_api

🔧 2. Проверить окружение

java -version
mvn -version

⚙️ 3. Собрать проект

mvn clean install

🔐 4. Подготовить параметры запуска

Перед запуском тестов необходимо передать следующие параметры в виде -D флагов для Maven:

Параметр Назначение
DB_USER Пользователь БД (PostgreSQL)
DB_PASSWORD Пароль пользователя БД
API_USER Логин тестового API-пользователя
API_PASSWORD Пароль API-пользователя
BASE_URL Базовый URL для запросов к API

🧪 5. Запустить тесты

Все переменные передаются через -D, чтобы быть доступными через System.getProperty(...)


✅ Только API:
cd API
mvn clean test \
  -DDB_USER=postgres \
  -DDB_PASSWORD=secret \
  -DAPI_USER=test_user \
  -DAPI_PASSWORD=super_secret \
  -DBASE_URL=https://example.com/api

✅ Только UI:
cd UI
mvn clean test 

✅ Все тесты во всех модулях:
mvn clean test \
  -DDB_USER=postgres \
  -DDB_PASSWORD=secret \
  -DAPI_USER=test_user \
  -DAPI_PASSWORD=super_secret \
  -DBASE_URL=https://example.com/api \
  -Dallure.results.directory=target/allure-results \
  -fail-at-end
📊 6. Сформировать Allure отчёт

Установить Allure CLI:

Ubuntu/macOs
# macOS
brew install allure
# Ubuntu / Debian
sudo apt install allure
Windows
  1. Перейди на страницу релизов Allure: 👉 https://github.com/allure-framework/allure2/releases

  2. Скачай .zip архив с последним релизом, например allure-2.23.0.zip.

  3. Распакуй его, например в: C:\allure

  4. Добавь путь к папке bin в системную переменную Path:

  • Открой "Переменные среды"
  • Найди переменную Path → Изменить → Добавить: C:\allure\bin
  1. Проверь в консоли:
allure --version
---

Сгенерировать и открыть отчёт:

allure serve target/allure-results

Или сохранить в директорию:

allure generate target/allure-results -o target/allure-report --clean

📌 API кейсы

1️⃣ Создание пользователя

Параметр Значение
Эндпоинт POST /user
Предусловие Получить токен через POST /login с username и password
Шаги 1) Отправить POST /user с телом { "firstName": "Тест", "lastName": "Тестовлев", "age": 18, "sex": "MALE", "money": 12997 }
2) Проверить ответ (код 201 и тело).
3) Проверить, что запись создана в таблице person.
Ожидаемое 1) Код 201
2) Вернулся ID и корректные данные
3) В таблице person создана запись

2️⃣ Создание машины

Параметр Значение
Эндпоинт POST /car
Предусловие Получить токен
Шаги 1) Отправить POST /car с телом { "engineType": "Electric", "mark": "TestMark", "model": "TestModel", "price": 100500 }
2) Проверить ответ (код 201 и тело).
3) Проверить, что запись создана в таблице car.
Ожидаемое 1) Код 201
2) Вернулся ID и корректные данные
3) В таблице car создана запись

3️⃣ Создание дома

Параметр Значение
Эндпоинт POST /house
Предусловие Получить токен
Шаги 1) Отправить POST /house с телом { "floorCount": 4, "price": 230, "parkingPlaces": [ {...}, {...} ] }
2) Проверить ответ (код 201 и тело).
3) Проверить, что запись создана в таблице house.
Ожидаемое 1) Код 201
2) Вернулся ID и корректные данные
3) В таблице house создана запись

4️⃣ Покупка машины

Параметр Значение
Эндпоинт POST /user/{userId}/buyCar/{carId}
Предусловие Получить токен, создать пользователя и машину
Шаги 1) Отправить POST /user/{userId}/buyCar/{carId}.
2) Проверить ответ (код 200 и корректное тело).
3) Проверить, что money пользователя уменьшилось на стоимость машины в таблице person.
Ожидаемое 1) Код 200
2) Money пользователя уменьшилось на стоимость машины
3) В таблице person обновлено поле money

5️⃣ Заселение в дом

Параметр Значение
Эндпоинт POST /house/{houseId}/settle/{userId}
Предусловие Получить токен, создать пользователя и дом
Шаги 1) Отправить POST /house/{houseId}/settle/{userId}.
2) Проверить ответ (код 200 и корректное тело).
3) Проверить, что money пользователя уменьшилось на стоимость дома в таблице person.
Ожидаемое 1) Код 200
2) Money пользователя уменьшилось на стоимость дома
3) В таблице person обновлено поле money

🖥️ UI кейсы

1️⃣ Авторизация клиента

Параметр Значение
Название Авторизация клиента
Предусловие Открыта страница логина
Шаги Нажать Customer Login → выбрать пользователя из списка → нажать Login
Ожидаемое 1) Отображается аккаунт клиента (1004, 1005, 1006)
2) Имя клиента: Harry Potter

2️⃣ Внесение и снятие депозита

Параметр Значение
Название Внесение и снятие депозита
Предусловие Пользователь авторизован
Шаги Зайти в аккаунт → Внести депозит 100 → Снять депозит 100 → Проверить баланс → Проверить транзакции
Ожидаемое 1) Баланс равен 0 после операций
2) Запись транзакций соответствует: Credit 100, Debit 100
3) Транзакции сохранены в CSV

3️⃣ Открытие страницы транзакций

Параметр Значение
Название Открытие страницы транзакций
Предусловие Пользователь авторизован
Шаги Зайти в аккаунт → Нажать Transactions
Ожидаемое 1) Таблица транзакций видна
2) Переход назад работает

4️⃣ Открытие модального окна депозита

Параметр Значение
Название Открытие модального окна депозита
Предусловие Пользователь авторизован
Шаги Зайти в аккаунт → Нажать Deposit
Ожидаемое 1) Открылась форма депозита
2) Поле для ввода суммы отображается

5️⃣ Открытие модального окна снятия

Параметр Значение
Название Открытие модального окна снятия
Предусловие Пользователь авторизован
Шаги Зайти в аккаунт → Нажать Withdrawl
Ожидаемое 1) Открылась форма снятия
2) Поле для ввода суммы отображается

6️⃣ Авторизация менеджера

Параметр Значение
Название Авторизация менеджера
Предусловие Открыта страница логина
Шаги Нажать Manager Login
Ожидаемое 1) Отображаются кнопки Add Customer, Open Account, Customers

7️⃣ Добавление нового клиента

Параметр Значение
Название Добавление нового клиента
Предусловие Менеджер авторизован
Шаги Зайти в Manager Login → Add Customer → Заполнить форму → Отправить → Проверить алерт → Проверить клиента в таблице
Ожидаемое 1) Появился алерт об успешном добавлении
2) Клиент сохранён в таблицу
3) Данные клиента сохранены в CSV

8️⃣ Внесение депозита (негативный)

Параметр Значение
Название Внесение депозита (негативный кейс)
Предусловие Пользователь авторизован
Шаги Зайти в аккаунт → Открыть Deposit → Ввести невалидную сумму → Submit
Ожидаемое 1) Баланс не изменился
2) Ошибок нет, но сумма не учтена

9️⃣ Снятие депозита (негативный)

Параметр Значение
Название Снятие депозита (негативный кейс)
Предусловие Пользователь авторизован
Шаги Зайти в аккаунт → Открыть Withdrawl → Ввести невалидную сумму → Submit
Ожидаемое 1) Баланс не изменился
2) Ошибок нет, но сумма не учтена

🔟 Выбор аккаунта

Параметр Значение
Название Выбор аккаунта
Предусловие Пользователь авторизован, есть депозит
Шаги Зайти в аккаунт → Сделать депозит → Выбрать другой аккаунт из списка
Ожидаемое 1) Валюта изменилась
2) Баланс изменился
3) Валюта = Pound

About

UI and API test automation in Java: Selenide, REST Assured, JUnit 5, with a published Allure report.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages