Проектная спецификация
Данный проект основан на платформе разработки renren-fast на Java. В основе проекта лежит ядро Jmeter-Api и Jmeter, которые реализуют онлайн-тестирование производительности. Проект был создан на основе открытого исходного кода zyanycall/stressTestPlatform и подвергся значительным изменениям. Дальнейшее развитие проекта предполагает добавление новых функций.
Особенности проекта:
- Удобная структура кода и комментарии для чтения и дальнейшей разработки.
- Разделение на клиентскую и серверную части с использованием токена для обмена данными, что позволяет клиентской части не зависеть от серверной технологии.
- Гибкий контроль доступа, позволяющий контролировать доступ к страницам или кнопкам в соответствии с требованиями безопасности.
- Использование Vue2.x для взаимодействия с пользователем, что значительно повышает эффективность разработки.
- Наличие механизма генерации кода, который позволяет автоматически создавать entity, xml, dao, service, html, js и sql код, сокращая более 70% задач разработки.
- Внедрение Quartz для выполнения задач, таких как добавление, изменение, удаление, приостановка, возобновление и просмотр журналов.
- Применение API шаблонов, использующих токен в качестве логина, что упрощает разработку интерфейсов приложений.
- Интеграция Hibernate Validator для реализации проверки на стороне сервера.
- Поддержка облачных хранилищ, включая Qiniu, Alibaba Cloud, Tencent Cloud и другие.
- Обеспечение поддержки документации Swagger для создания API-интерфейсов.
- Реализация маршрутизации, при которой обновление страницы сохраняет текущее состояние.
- Обновление до последней версии Jmeter-Api, поддерживающей распределённое тестирование, генерацию отчётов о тестировании и онлайн просмотр и загрузку отчётов.
- Включение Echarts для мониторинга результатов тестирования производительности в реальном времени.
Структура проекта:
renren-fast
├─doc проект SQL-запросов
│
│─lib ссылки на используемые jar-файлы
│
├─common
│ ├─aspect системный журнал
│ ├─exception обработка исключений
│ ├─validator проверка на сервере
│ └─xss защита от XSS-атак
│
├─config конфигурация проекта
│
├─modules функциональные модули
│ ├─api модуль API-интерфейса (для вызовов из приложений)
│ ├─job модуль задач
│ ├─oss модуль файловых сервисов
│ ├─sys модуль разрешений
│ └─test модуль тестирования
│
├─RenrenApplication класс запуска проекта
|
├──resources
│ ├─mapper XML-файлы, соответствующие SQL
│ ├─static сторонние библиотеки и плагины
│ └─views статические страницы проекта
Технические решения:
- Ядро фреймворка: Spring Boot 1.5
- Фреймворк безопасности: Apache Shiro 1.3
- Фреймворк представления: Spring MVC 4.3
- Фреймворк персистентности: MyBatis 3.3
- Таймер: Quartz 2.3
- Пул соединений с базой данных: Druid 1.0
- Управление журналами: SLF4J 1.7, Log4j
- Взаимодействие с клиентом: Vue2.x
- Мониторинг клиента: ECharts 3.8
- Тестирование ядра: Apache JMeter 5.4.1
- Выполнение команд удалённо: Ganymed build210
- Загрузка файлов: bootstrap-fileinput v4.5.2
- Внутренний кэш JVM: Guava 18.0
Локальное развёртывание:
- Скачайте исходный код через git.
- Создайте базу данных renren_fast с кодировкой UTF-8.
- Выполните файл doc/db.sql для инициализации данных.
- Измените файл application-dev.yml и обновите информацию о MySQL-аккаунте и пароле (или используйте application.yml для настройки h2 и application-h2.yml для подключения к базе данных h2).
- Измените таблицу sys_config в MySQL, указав адрес локального хоста для Jmeter.
- Запустите RenrenApplication.java в Eclipse или IDEA для запуска проекта.
- Доступ к проекту осуществляется по адресу http://localhost:8080/.
- Логин и пароль: admin/admin.
- Отчёт Swagger доступен по адресу http://localhost:8080/swagger/index.html.
Развёртывание в виде jar-файла:
- Измените application.yml, чтобы указать профиль для соответствующей среды, например, pro для локальной среды.
- Измените application-pro.yml и укажите информацию о локальном MySQL-аккаунте и пароле.
- Соберите проект с помощью команды maven clean package -f pom.xml.
- Упакуйте полученный jar-файл в папку target и запустите его с помощью java -jar renren-fast.jar.
- Также можно упаковать проект в Docker-образ с помощью Dockerfile.
- Доступ к проекту можно получить по адресу, например, http://локальный_адрес:8080/, используя логин и пароль admin/admin.
Развёртывание на Tomcat:
- Измените application.yml, чтобы указать профиль для соответствующей среды, например, pro для локальной среды.
- Измените application-pro.yml и укажите информацию о локальном MySQL-аккаунте и пароле.
- Соберите проект с помощью команды maven clean package -f pom-war.xml.
- Поместите полученный war-файл в каталог webapps на Tomcat.
- Запустите Tomcat с помощью команды startup в каталоге bin.
- Получите доступ к проекту по адресу, например, http://локальный_адрес:8080/, используя логин и пароль admin/admin.
Docker-развёртывание:
Для получения подробной информации о развёртывании обратитесь к документации на сайте Gitee.com/smooth00/stressTestSystemDocker. Также доступны Docker-образы на сайте registry.hub.docker.com/u/smooth00.
Конфигурационные параметры:
Параметры тестирования производительности хранятся в базе данных в разделе «Системное управление -> Параметры управления».
Основные параметры включают:
- Путь к главному узлу Jmeter, используемый по умолчанию для генерации отчётов о тестах. Значение по умолчанию — D:\software\apache-jmeter-5.4.1.
- Общий каталог для хранения тестовых случаев, где также будут разделены файлы для каждого случая. Путь по умолчанию — casePath: D:\E\stressTestCases.
- Для узлов Jmeter необходимо настроить переменную JAVA_HOME в /etc/bashrc и выполнить source /etc/bashrc для активации изменений.
- Если настроено использование сценариев Jmeter для запуска, то также необходимо запустить процесс Jmeter на каждом узле для выполнения тестов и распределённых программ. Распределённые программы могут быть настроены без проверки SSL (требуется версия Jmeter 4 и выше). Также возможно настроить мониторинг в реальном времени с использованием InfluxDB и Grafana. Кроме того, поддерживается мониторинг с использованием ECharts.
- Без использования сценариев Jmeter для запуска можно использовать веб-приложение для запуска Jmeter. MASTER_JMETER_USE_SCRIPT_KEY по умолчанию имеет значение false, что означает запуск процесса веб-приложения для запуска программы Jmeter-master.
- По умолчанию поддерживается генерация отчётов о тестах в процессе, а также возможна генерация отчётов с использованием сценариев. MASTER_JMETER_GENERATE_REPORT_KEY со значением true означает генерацию отчётов в процессе с поддержкой параллельной генерации.
- SCRIPT_SCHEDULER_DURATION_KEY со значением true включает ограничение времени выполнения сценариев, чтобы предотвратить их бесконечное выполнение в фоновом режиме.
- JMETER_THREADGROUP_SET_KEY по умолчанию имеет значение false. При значении true включается управление группами потоков, и при импорте сценариев также импортируется информация о группах потоков.
При развёртывании рекомендуется убедиться, что версии платформы Jmeter, главного узла и распределённых узлов совпадают, чтобы избежать проблем с конфигурацией и отчётами о тестах из-за различий в версиях.
Опубликовать ( 0 )