概述
Metersphere文档地址:https://metersphere.io/docs/dev_manual/
代码地址:
#下载指定版本metersphere源码,最新版本可能要根据实际情况稍有改动
git clone https://github.com/metersphere/metersphere.git
git reset --hard df1d5d7608b3e8cc9c45e63b648a2b8a84e03d42 (v1.19.3版本)
- 主系统:包含项目前端和后端
后端框架: Spring Boot
前端框架: Vue.js
代码地址:https://github.com/metersphere/metersphere
本地开发需安装:JDK、Node.js、Idea
- 性能测试资源节点服务:通过Docker启动Jmeter容器,构建主机为性能测试资源节点,jmeter的测试日志和测试结果会写入kafka
后端框架: Spring Boot
代码地址:https://github.com/metersphere/node-controller
本地开发需安装:JDK、Docker、Kafka
- 数据消费和性能结果生成服务:消费kafka信息,保存性能测试结果数据
后端框架: Spring Boot
代码地址:https://github.com/metersphere/data-streaming
本地开发需安装:JDK、Kafka
- 还有一些其他的组件,多已上传到各类仓库,如果需要二次改造,可以查阅
https://github.com/metersphere
环境准备(本人环境如下):
- jdk 1.8
- maven 3.8.2
- node 16.10.0(npm 6.14.15)
- docker 4.5.0
- mysql 5.7.31
- kafka 2.8.0
- redis 6.2.5
- idea:2020.1
安装前端依赖
cd metersphere/frontend
#安装前端依赖
npm install
#构建dist
npm run build
安装后端依赖
sudo mkdir -p /opt/jmeter/
cd metersphere/
sudo cp -rf backend/src/main/resources/jmeter/bin /opt/jmeter
初始化配置:
- 添加数据库配置
#创建配置文件
sudo vi /etc/my.cnf
#文件内容如下
[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
server-id=1
log-bin=mysql-bin
expire_logs_days = 2
binlog_format=mixed
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
#文件赋权
sudo chmod 664 /etc/my.cnf
#重启mysql 配置文件就能生效了
- 数据库初始化
请参考文档中的建库语句创建 MeterSphere 使用的数据库,metersphere-server 服务启动时会自动在配置的库中创建所需的表结构及初始化数据。
CREATE DATABASE `metersphere_dev` /*!40100 DEFAULT CHARACTER SET utf8mb4 */
-
配置Metersphere
1)创建Metersphere目录sudo mkdir -p /opt/metersphere/conf sudo mkdir -p /opt/metersphere/logs
2)添加Metersphere配置文件输入:sudo vi /opt/metersphere/conf/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 spring.datasource.username=root 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.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.6 # TCP Mock 端口范围 tcp.mock.port=10000-10010 # Redis 配置 spring.redis.host=localhost spring.redis.port=6379 spring.redis.password=123456 # 启动模式,lcoal 表示以本地开发模式启动 run.mode=local
启动:
- 数据库启动
本人从系统偏好设置-mysql里面启动
- kafka启动
cd /usr/local/Homebrew/Cellar/kafka/2.8.0/bin
./zookeeper-server-start /usr/local/Homebrew/etc/kafka/zookeeper.properties
#另起终端
cd /usr/local/Homebrew/Cellar/kafka/2.8.0/bin
./kafka-server-start /usr/local/Homebrew/etc/kafka/server.properties
- redis启动
brew services start redis
redis默认无密码,设置密码配置/usr/local/Homebrew/etc/redis.conf文件,找到# requirepass foobared,将其改为requirepass 你的密码。
注意:由于上诉操作更改了redis.conf文件,所以下次再启动的时候,要手动加载一下redis.conf文件。例如
进入到redis根目录,启动如下
redis-server /usr/local/Homebrew/etc/redis.conf
- 运行后端
#进入Metersphere后端目录
cd metersphere/backend
#运行spring-boot项目
sudo mvn spring-boot:run
- 如果遇到了如下报错,记得进入前端目录构建dist: npm run build(参照前面的安装前端依赖)
- 若出现如下异常 , 其实就是我们的MySQL不允许远程登录,所以远程登录失败了
执行如下操作:
- 在装有MySQL的机器上登录MySQL mysql -u root -p密码
- 执行
use mysql;
- 执行
update user set host = '%' where user = 'root';
这一句执行完可能会报错,不用管它。 -
执行
FLUSH PRIVILEGES;
经过上面4步,就可以解决这个问题了。
- 数据库配置文件/etc/my.cnf加载错误会出现如下异常,这时需确认文件权限是否为664,然后重启数据库。同时确认下数据库内是否已经有表创建,如有的话把表全部删除
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-03-10 11:41:11,920 ERROR g.springframework.boot.SpringApplication: 830 - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'schedulerStarter': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is org.flywaydb.core.api.FlywayException: Schema `metersphere_dev` contains a failed migration to version 68 !
- 运行前端
cd metersphere/frontend/
npm run serve
- 浏览器访问http://{机器ip}:8080
账号:admin
密码:metersphere
如果看到以下画面说明Metersphere搭建成功!
其他:
- 自动执行SQL语句开关控制
backend/src/main/resources/base.properties中
spring.flyway.enabled=true时启动服务会自动执行sql语句,建表完成想加快启动速度改为false即可。
最后
以上就是安详楼房为你收集整理的mac上metersphere本地开发环境搭建的全部内容,希望文章能够帮你解决mac上metersphere本地开发环境搭建所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复