KoskvSpringBot
Описание
Первый бот, делаю по фану. Функционал по идее будет расширяться.
Языки
- Java100%
БОТ - Моя перезентация. Первый релиз вышел, находится в работе. (Носит информационный характер. Функциональность дорабатывается)
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
-
- netstat -ano | find "8080" - команда находит запущенные процессы на порту Spring Tomcat Server
-
- 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()
- TelegramBot - главный класс приложения
- service
- org.example.telegrambot - базовый пакет
-
/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/ - основные тестовые классы
-
- org.example - базовый пакет
-
ru.first_am - пакет с тестами, все тесты должны быть в нем
- пакеты с тестовыми классами - тесты разбиты на пакеты по сервисам.
- тестовые классы - каждый класс отвечает за набор тестов определенной доработки Jira. /src/test/resources - место для тестовых ресурсов. allure.properties - настрйоки Allure report
- пакеты с тестовыми классами - тесты разбиты на пакеты по сервисам.
Установка и запуск
- Убедитесь, что у вас установлен JDK (Java Development Kit) версии 11 или выше.
- Установите Maven, если он еще не установлен.
- Настройте переменные среды как указано: https://conf.sberbank-am.ru/pages/viewpage.action?pageId=104707751
- Перейдите в каталог, где будет находится локальный проект, клонируйте репозиторий проекта: git clone <URL вашего репозитория> Если будет получена ошибка на сертификат, то нужно выполнить команду создающую конфиг гита: git config --global user.name "указать своего пользователя Windows"
- Перейдите в директорию проекта:
- 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 для отчетности по тестированию. Если у вас есть вопросы или предложения, пожалуйста, свяжитесь с автором проекта. Обратите внимание, что структура проекта может изменяться в зависимости от ваших требований и настроек.