源码搭建 (前后端分离)

项目结构

  1. .
  2. ├── Dockerfile # 构建容器镜像使用的 dockerfile
  3. ├── Jenkinsfile # 构建JAR包使用的 jenkinsfile
  4. ├── LICENSE
  5. ├── OWNERS
  6. ├── README.md
  7. ├── README-EN.md
  8. ├── SECURITY.md # 安全说明
  9. ├── CODE_OF_CONDUCT.md
  10. ├── CONTRIBUTING.md
  11. ├── backend # 后端项目主目录
  12. ├── src # 后端代码目录
  13. ├── pom.xml # 后端 maven 项目使用的 pom 文件
  14. └── .gitignore
  15. ├── frontend # 前端项目主目录
  16. ├── public
  17. ├── src # 前端代码目录
  18. ├── .editorconfig
  19. ├── .gitignore
  20. ├── babel.config.js
  21. ├── package.json
  22. ├── vue.config.js # 前端 maven 项目使用的 pom 文件
  23. └── 代码规范.MD
  24. ├── .gitignore
  25. ├── .gitmodules
  26. └── pom.xml # 整体 maven 项目使用的 pom 文件

配置开发环境

后端

MeterSphere 后端使用了 Java 语言的 Spring Boot 框架,并使用 Maven 作为项目管理工具。开发者需要先在开发环境中安装 JDK 1.11 及 Maven。

初始化配置

数据库初始化

注意

MeterSphere 使用 MySQL 数据库,推荐使用 MySQL 5.7 版本。同时 MeterSphere 对数据库部分配置项有要求,请参考下附的数据库配置,修改开发环境中的数据库配置文件。

  1. [mysqld]
  2. default-storage-engine=INNODB
  3. lower_case_table_names=1
  4. table_open_cache=128
  5. max_connections=2000
  6. max_connect_errors=6000
  7. innodb_file_per_table=1
  8. innodb_buffer_pool_size=1G
  9. max_allowed_packet=64M
  10. transaction_isolation=READ-COMMITTED
  11. innodb_flush_method=O_DIRECT
  12. innodb_lock_wait_timeout=1800
  13. innodb_flush_log_at_trx_commit=0
  14. sync_binlog=0
  15. server-id=1
  16. log-bin=mysql-bin
  17. expire_logs_days = 2
  18. binlog_format=mixed
  19. sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  20. skip-name-resolve

请参考文档中的建库语句创建 MeterSphere 使用的数据库,metersphere-server 服务启动时会自动在配置的库中创建所需的表结构及初始化数据。

  1. CREATE DATABASE `metersphere_dev` /*!40100 DEFAULT CHARACTER SET utf8mb4 */
MeterSphere 配置文件

MeterSphere 会默认加载该路径下的配置文件 /opt/metersphere/conf/metersphere.properties,请参考下列配置创建对应目录及配置文件。

  1. # 数据库配置
  2. spring.datasource.url=jdbc:mysql://localhost:3306/metersphere_dev?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
  3. spring.datasource.username=root
  4. spring.datasource.password=root
  5. # kafka 配置,node-controller 以及 data-streaming 服务需要使用 kafka 进行测试结果的收集和处理
  6. kafka.partitions=1
  7. kafka.replicas=1
  8. kafka.topic=JMETER_METRICS
  9. kafka.test.topic=JMETER_TESTS
  10. kafka.bootstrap-servers={KAFKA_IP}:19092
  11. kafka.log.topic=JMETER_LOGS
  12. kafka.report.topic=JMETER_REPORTS
  13. # node-controller 所使用的 jmeter 镜像版本
  14. jmeter.image=registry.fit2cloud.com/metersphere/jmeter-master:0.0.6
  15. # TCP Mock 端口范围
  16. tcp.mock.port=10000-10010
  17. # Redis 配置
  18. spring.redis.host={REDIS_IP}
  19. spring.redis.port=6379
  20. spring.redis.password=Password123@redis
  21. # 启动模式,lcoal 表示以本地开发模式启动
  22. run.mode=local
JMeter 配置文件

metersphere-server 服务依赖的 JMeter 核心类库需要加载 JMeter 配置文件,默认加载 /opt/jmeter 下的配置文件。

开发者需要先创建好对应文件夹,并将工程目录中 backend/src/main/resources/jmeter/bin 目录下的配置文件拷贝到 /opt/jmeter/bin 目录。

运行后端服务

在启动配置中添加 Spring Boot 启动项,直接启动 Spring Boot 项目即可。

server-start

前端

MeterSphere 前端使用了 Vue.js 作为前端框架,ElementUI 作为 UI 框架,并使用 npm 作为包管理工具。开发者请先下载 Node.js 作为运行环境,IDEA 用户建议安装 Vue.js 插件,便于开发。

初始化配置

进入 metersphere-server/frontend/ 目录,执行以下命令安装相关前端组件。

  1. npm install

运行前端服务

进入到 metersphere-server/frontend/ 目录,执行以下命令启动前端服务。

  1. npm run serve