KoskvSpringBot

0

Описание

Первый бот, делаю по фану. Функционал по идее будет расширяться.

Языки

  • Java100%
readme.md

БОТ - Моя перезентация. Первый релиз вышел, находится в работе. (Носит информационный характер. Функциональность дорабатывается)

README проекта

Описание

Этот проект представляет собой Java-приложение, Telegram bot. Состоит:

  • Telegrambots - библиотека для работы с telegram.
  • Spring Boot для запуска приложения телеграм бота;
  • Lombok - для генерации геттеров, сеттеров, toString, equals, конструкторы.
  • Spring data jpa для работы с базами данных приложения.
  • RestAssured - для взаимодействия с API сторонних сервисов.
  • slf4j - для логирования работы приложеняи и отладки.
  • javax.mail - для отправки Email.
  • Включает в себя различные модули и плагины для генерации отчетов и анализа данных. В проекте также используется Allure для создания отчетов о тестировании.

Запуск / завершение работы бота

- Запуск бота можно выполнить из папки: E:\Java_Projects\TelegramBot\output\MyBot.exe

    1. netstat -ano | find "8080" - команда находит запущенные процессы на порту Spring Tomcat Server
    1. taskkill /F /PID 155780 - команда завершает процесс, номер которого найден предидущей командой.
  • Завершение работы бота (в CMD): taskkill /f /im javaw.exe

- Запустить в проекте главный метод Spring приложения.

Структура проекта

  • /src/main/java - основные компоненты и шаги

    • org.example.telegrambot - базовый пакет
      • service
        • TelegramBot - главный класс приложения
          • onUpdateReceived(Update update) extends TelegramLongPollingBot - главный метод бота. Если получено сообщение, запускает метод processMessage(update);
          • processMessage(update) - получаем данные пользователя отправившего сообщение и данные чата, анализируем тип сообщения, текст или изображение. Запускаем соответственно: handleTextMessage() или handlePhotoMessage()
  • /src/main/java - основные компоненты и шаги

    • org.example - базовый пакет
      • base - общие компоненты используемые по всему проекту

        • allure - классы с методами для Allure
        • api - компоненты используемые для Rest API запросов
        • data - компоненты содержащие данные, для использования в любом месте проекта
        • support - дополнительные, ВАЖНЫЕ компоненты, для обработки данных, конвертирования, валидации, проверки.
        • web - конфиги для web тестов.
        • Dependency - класс наследник в котором содержатся созданные объекты классов сервисов, репозиториев и другие необходимые для тестов сущности.
      • db - компоненты для взаимодействия с базами данных

        • пакет с базой данных - в каждом пакете компоненты для взаимодействия с определенной базой данных.
          • config - содержит подключение к конкретной базе данных через Spring
          • entity - содержит сущности таблиц конкретной базы данных
          • repository - содержит Spring репозитории для выполнения запросов к базе данных
          • service - содержит Spring сервисы с реализованными методами взаимодействия с базой данных
      • pages - классы-страницы в которыx указаны web элементы страницы для взаимодействия с UI портала

      • pojo - Pojo классы для генерации тела запросов. ru.first_am.web - содержит пакеты для взаимодействия с UI портала ИДУ ru.first_am.actions - классы в которые вынесены методы взаимодействия с UI портала

        /src/main/resource - здесь храним ресурсы, такие как: json - папка содержащая файлы *.json (с заявками) приходящие из ППРБ, для эмуляции запросов. sql - папка содержащая SQL запросы, если требуется (пока не используется). webdriver - папка содержащая webdriver файлы для открытия браузера (сейчас используется браузер Yandex и chromedriver). xml - папка содержащая XML файлы (пока не используется). application.* - конфигурации для Spring, компонентов Spring Boot и компонентов проекта. Подключения. /src/test/java/ - основные тестовые классы
  • ru.first_am - пакет с тестами, все тесты должны быть в нем

    • пакеты с тестовыми классами - тесты разбиты на пакеты по сервисам.
      • тестовые классы - каждый класс отвечает за набор тестов определенной доработки Jira. /src/test/resources - место для тестовых ресурсов. allure.properties - настрйоки Allure report

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

  1. Убедитесь, что у вас установлен JDK (Java Development Kit) версии 11 или выше.
  2. Установите Maven, если он еще не установлен.
  3. Настройте переменные среды как указано: https://conf.sberbank-am.ru/pages/viewpage.action?pageId=104707751
  4. Перейдите в каталог, где будет находится локальный проект, клонируйте репозиторий проекта: git clone <URL вашего репозитория> Если будет получена ошибка на сертификат, то нужно выполнить команду создающую конфиг гита: git config --global user.name "указать своего пользователя Windows"
  5. Перейдите в директорию проекта:
  • bash cd <имя_директории_проекта>
  • Соберите проект с помощью Maven: bash mvn clean install
  • Запустите приложение: bash mvn spring-boot:run

Тестирование

Для запуска тестов используйте команду: bash mvn test -Dgroups="UnitTest" Вы можете заменить UnitTest на нужный вам тег.

Аннотации в проекте

  • @Configuration, @Bean, @Service, @Repository - Spring аннотации используемые для настроек работы с БД.
  • @Entity, @Table - Jakarta Persistant - разметка класса как сущности таблица, для десериализации
  • @SpringBootTest, @Transactional - Spring аннотации для тестов
  • @Test, @Tag - Junit аннотации тестов
  • @Epic, @Feature, @Story, @Description, @Severity - Allure аннотации класса, для отчета
  • @Owner, @TmsLink, @Issue - Allure аннотации для пометки тестов (отображение в отчете)

Allure отчет

В проекте используются плагин Allure. После выполнения тестов, запуск Allure отчета выполняется командой: .allure\allure-2.27.0\bin\allure.bat serve target/allure-results После выполнения команды в браузере будет открыт отчет с результатами тестов.

Git контроль версий

В проекте подключен Git. Сам проект лежит в BitBucket. Команды для работы - коммин изменний:

  • git add --all (находит все изменения для коммита)
  • git commit -m "комментарий" (коммитит найденные изменения)
  • git push -u origin IFT (пушит в указанную ветку) Команды для работы - перенос изменений в другую ветку (из IFT в Master):

Возможные проблемы

  • Если запуск тестов в терминале не понимает кирилицу, можно выполнить команду: chcp 65001

Заключение

Этот проект предоставляет основу для разработки и тестирования приложений на Java с использованием Spring Boot и Allure для отчетности по тестированию. Если у вас есть вопросы или предложения, пожалуйста, свяжитесь с автором проекта. Обратите внимание, что структура проекта может изменяться в зависимости от ваших требований и настроек.