1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/smooth00-stressTestSystem

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 12 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 14:53 3150a04

Проектная спецификация

Данный проект основан на платформе разработки 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

Локальное развёртывание:

  1. Скачайте исходный код через git.
  2. Создайте базу данных renren_fast с кодировкой UTF-8.
  3. Выполните файл doc/db.sql для инициализации данных.
  4. Измените файл application-dev.yml и обновите информацию о MySQL-аккаунте и пароле (или используйте application.yml для настройки h2 и application-h2.yml для подключения к базе данных h2).
  5. Измените таблицу sys_config в MySQL, указав адрес локального хоста для Jmeter.
  6. Запустите RenrenApplication.java в Eclipse или IDEA для запуска проекта.
  7. Доступ к проекту осуществляется по адресу http://localhost:8080/.
  8. Логин и пароль: admin/admin.
  9. Отчёт Swagger доступен по адресу http://localhost:8080/swagger/index.html.

Развёртывание в виде jar-файла:

  1. Измените application.yml, чтобы указать профиль для соответствующей среды, например, pro для локальной среды.
  2. Измените application-pro.yml и укажите информацию о локальном MySQL-аккаунте и пароле.
  3. Соберите проект с помощью команды maven clean package -f pom.xml.
  4. Упакуйте полученный jar-файл в папку target и запустите его с помощью java -jar renren-fast.jar.
  5. Также можно упаковать проект в Docker-образ с помощью Dockerfile.
  6. Доступ к проекту можно получить по адресу, например, http://локальный_адрес:8080/, используя логин и пароль admin/admin.

Развёртывание на Tomcat:

  1. Измените application.yml, чтобы указать профиль для соответствующей среды, например, pro для локальной среды.
  2. Измените application-pro.yml и укажите информацию о локальном MySQL-аккаунте и пароле.
  3. Соберите проект с помощью команды maven clean package -f pom-war.xml.
  4. Поместите полученный war-файл в каталог webapps на Tomcat.
  5. Запустите Tomcat с помощью команды startup в каталоге bin.
  6. Получите доступ к проекту по адресу, например, 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/smooth00-stressTestSystem.git
git@api.gitlife.ru:oschina-mirror/smooth00-stressTestSystem.git
oschina-mirror
smooth00-stressTestSystem
smooth00-stressTestSystem
master