WHCSRL 技术网

metersphere平台架构解析及二次开发

1、github地址:https://github.com/metersphere,系统架构:后端springboot,前端vue.js,数据库MySQL(我是5.7.33),如果需要使用性能模块,就要安装zookeeper、kafka、promethus和node-exporter(监控服务器资源),以及平台对应的node-controller(加压节点)、date-streaming(消费处理性能能数据),使用时自己安装,缺啥百度下解决

2、官网支持一键安装,没有二开需求的可以用这种方式,有二开的需求的朋友一般只需要针对metersphere项目做相应业务改动就可以了

3、简单讲下主体项目metersphere,github地址:https://github.com/metersphere/metersphere,​​​​​​

我本地开发用的idea,git拉代码我就不讲了,选择最近的适合自己的项目分支,项目前后端是在一起的,可以打成一个jar包,如下图

本地开发需要的jdk最好1.8以上,maven随意,还要安装下vue环境node

安装前端依赖

cd metersphere/frontend
#安装前端依赖
npm install
#构建dist
npm run build

后端项目修改本地调试修改位置

resource下面添加metersphere.properties文件,内容如下

# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/metersphere_dev?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%%2B8
spring.datasource.username=root
#localhost
spring.datasource.password=123456

# kafka 配置,node-controller 以及 data-streaming 服务需要使用 kafka 进行测试结果的收集和处理
kafka.partitions=1
kafka.replicas=1
kafka.topic=JMETER_METRICS
#kafka.test.topic=JMETER_TESTS
kafka.test.topic=test
#kafka.bootstrap-servers={KAFKA_IP}:19092
kafka.bootstrap-servers=192.168.101.21:9092
#kafka.bootstrap-servers=localhost:9092
kafka.log.topic=JMETER_LOGS
kafka.report.topic=JMETER_REPORT
# node-controller 所使用的 jmeter 镜像版本
jmeter.image=registry.fit2cloud.com/metersphere/jmeter-master:0.0.7
# TCP Mock 端口范围
tcp.mock.port=10000

# 启动模式,lcoal 表示以本地开发模式启动
#run.mode=local
#run.mode=ldap
run.mode=LDAP

resource下面application.properties文件,修改jmeter.home

开发配置jmeter.home=E:/idea_project/metersphere1.12/backend/src/main/resources/jmeter

部署配置jmeter.home=/opt/jmeter

 

# flyway enable(第一次可以用true用来自动建表,之后最好手工升级,要不然每次启动要跑很久)
spring.flyway.enabled=false

 

kafka下加上下面三个,要不然运行不起来

kafka.test.topic=test
#kafka.bootstrap-servers=192.168.101.21:9092
kafka.bootstrap-servers=localhost:9092
kafka.log.topic=JEMTER_LOGS

 

generattorConfig.xml、logback.xml配置property路径为本地路径如下图:

入口类Application配置

数据库配置

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

[mysqld] default-storage-engine=INNODB lower_case_table_names=1 table_open_cache=128 max_connections=2000 max_connect_errors=6000 innodb_file_per_table=1 innodb_buffer_pool_size=1G max_allowed_packet=64M transaction_isolation=READ-COMMITTED innodb_flush_method=O_DIRECT innodb_lock_wait_timeout=1800 innodb_flush_log_at_trx_commit=0 sync_binlog=0 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION skip-name-resolve

执行脚本创建库

CREATE DATABASE `metersphere_dev` /*!40100 DEFAULT CHARACTER SET utf8mb4 */

保持数据库是启动的,然后启动后台项目,再初始化前端项目

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

npm install

运行前端服务

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

npm run serve

http://localhost:8080/

 

 


推荐阅读