【MeterSphere】配置开发环境

本文详述了在Windows环境下配置MeterSphere开发环境的步骤,包括拉取代码、安装配套服务(如Mysql、Redis、Kafka、Minio、Nodejs)、项目初始化配置、解决后端MySQL 1251错误和mvnw使用问题。文中提供了相关配置文件的修改说明及错误解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

本文主要记录在window环境配置MeterSphere开发环境,与官方文档出入处。具体步骤参考: metersphere官方开发文档



拉取代码

  • 省去】无需拉取ms-jmeter-core项目代码
    因为自 v2.4版本开始,此部分代码已经移动到主工程metersphere/framework/sdk-parent/jmeter 中
  • 增加】拉取metersphere-platform-plugin项目代码
    • 安装到本地仓库:mvn clean install
      在这里插入图片描述
    • 修改父工程的pom文件中platform-plugin-sdk.version版本号,与本地安装的插件sdk版本一致(否则父工程会出现metersphere-platform-plugin-sdk依赖爆红)
      在这里插入图片描述

配套服务

后端: Mysql、Redis、Kafka、Minio等服务
前端: nodejs服务

后端

后端配套服务可自己百度搜索一一搭建或者参考官方文档。

本文为求方便快速,直接使用官方文档>安装部署>linux中部署>离线安装方式,完成配套中间件服务的安装配置。

  • 通过下载MeterSphere 最新版本的离线安装包,解压后,上传到到目标机器的 /tmp 目录下

  • 执行安装脚本

    cd /tmp/metersphere-offline-installer-v2.x.x
    /bin/bash install.sh
    
  • 配套服务的端口和密码可以通过install.conf和对应yaml文件确认

前端

本文采用conda虚拟环境配置nodejs

// 创建虚拟环境
conda create -n vben2
// 激活虚拟环境(window环境去掉conda)
conda activate vben2

// 安装nodejs
conda install -c conda-forge nodejs
// 验证安装效果
node -v
npm -v

# 全局安装pnpm
npm install -g pnpm
# 验证
pnpm -v # 出现对应版本号即代表安装成功

# 安装依赖
pnpm i

注意:若出现npm install 报版本错误,删除package-lock.json文件

项目初始化配置

  • windows系统,注意metersphere.properties 的位置:opt与主工程在同一级目录下
  • 根据实际中间件服务配置,修改metersphere.properties对应配置信息
    • 非本地安装的中间件,修改localhost
    • 中间件服务对应端口号(port)
    • 账号密码等(username、password、accessKey、secretKey)
  • /opt/metersphere/conf/目录下,增加redisson.yml配置
    在这里插入图片描述
    在这里插入图片描述

metersphere.properties

# eureka 配置
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/


# 数据库配置
spring.datasource.url=jdbc:mysql://192.168.11.204:3307/metersphere_dev?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
spring.datasource.username=root
spring.datasource.password=Password123@mysql


# kafka 配置,node-controller 以及 data-streaming 服务需要使用 kafka 进行测试结果的收集和处理
kafka.partitions=1
kafka.replicas=1
kafka.topic=JMETER_METRICS
kafka.test.topic=JMETER_TESTS
kafka.bootstrap-servers=192.168.11.204:9092
kafka.log.topic=JMETER_LOGS
kafka.report.topic=JMETER_REPORT

# node-controller 所使用的 jmeter 镜像版本
jmeter.image=registry.cn-qingdao.aliyuncs.com/metersphere/jmeter-master:5.5-ms2-jdk11

# TCP Mock 端口范围
tcp.mock.port=10000-10010

# Redis 配置
spring.redis.host=192.168.11.204
spring.session.store-type=redis
spring.redis.port=6379
spring.redis.password=Password123@redis


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

# minio 配置
minio.endpoint=http://192.168.11.204:9000
minio.accessKey=admin
minio.secretKey=Password123@minio

## CAS
#cas.client.name=MS_SERVER
## CAS SERVER URL
#cas.server.url=http://xxx/cas
## METERSPHERE SERVER URL
#cas.client.url=http://IP:8081 

redisson.yml

Redisson 的优势是提供了很多开箱即用的 Redis 高级功能,很多分布式相关操作服务,例如,分布式锁,分布式集合,可通过Redis支持延迟队列等。参考:配置方法

# 单节点配置
singleServerConfig:
  # 节点地址
  address: redis://192.168.11.204:6379
  # 密码
  password: Password123@redis
  # 客户端名称
  clientName: null
  # 数据库编号
  database: 6
  # 连接空闲超时,单位:毫秒
  idleConnectionTimeout: 10000
  # 连接超时,单位:毫秒
  connectTimeout: 10000
  # 命令等待超时,单位:毫秒
  timeout: 3000
  # 命令失败重试次数,如果尝试达到 retryAttempts(命令失败重试次数) 仍然不能将命令发送至某个指定的节点时,将抛出错误。
  # 如果尝试在此限制之内发送成功,则开始启用 timeout(命令等待超时) 计时。
  retryAttempts: 3
  # 命令重试发送时间间隔,单位:毫秒
  retryInterval: 1500
  # 单个连接最大订阅数量
  subscriptionsPerConnection: 5
  # 发布和订阅连接的最小空闲连接数
  subscriptionConnectionMinimumIdleSize: 1
  # 发布和订阅连接池大小
  subscriptionConnectionPoolSize: 50
  # 最小空闲连接数
  connectionMinimumIdleSize: 32
  # 连接池大小
  connectionPoolSize: 64
  # DNS监测时间间隔,单位:毫秒
  dnsMonitoringInterval: 5000
# 线程池数量,默认值: 当前处理核数量 * 2
#threads: 0
# Netty线程池数量,默认值: 当前处理核数量 * 2
#nettyThreads: 0
# 编码
codec: !<org.redisson.codec.JsonJacksonCodec> {}
# 传输模式
transportMode : "NIO"

项目打包和启动

  • 【多余】前端项目打包和启动

  • 为方便开发环境可以使用浏览器vue-devtools插件工具调试,在所需调试的模块前端代码入口(比如api-test/frontend/src/main.js),增加一行Vue.config.devtools = true;

  • window环境用mvnw替代./mvnw
    若报错,参考下文处理方案

  • 启动eureka,验证效果:http://localhost:8761/

  • 启动SettingApplication,可以看到在eureka处注册成功
    在这里插入图片描述

在这里插入图片描述

存在问题和解决方案

【后端】mysql连接报1251错误

分析原因:mysql8.0的plugin与之前的版本有差异。mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
解决办法:把mysql用户登录密码加密规则还原成mysql_native_password.

// 进入mysql容器
docker exec -it mysql /bin/bash
// 登录mysql
mysql -h localhost -P3307 -uroot -p(这里的3307是自己设置的端口号,自己设置是什么就填什么)
输入密码:Password123@mysql
// 查看当前加密规则
select host,user,plugin,authentication_string from mysql.user;
// 修改连接账号的加密规则
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Password123@mysql';
// 刷新权限
FLUSH PRIVILEGES;

【后端】mvnw 使用报错

背景

maven是一款非常流行的java项目构建软件,它集项目的依赖管理、测试用例运行、打包、构件管理于一身,是我们工作的好帮手,maven飞速发展,它的发行版本也越来越多,如果我们的项目是基于maven构件的,那么如何保证拿到我们项目源码的同事的maven版本和我们开发时的版本一致呢,可能你认为很简单,一个公司嘛,规定所有的同事都用一maven版本不就万事大吉了吗?一个组织内部这是可行的,要是你开源了一个项目呢?如何保证你使用的maven的版本和下载你源码的人的maven的版本一致呢,这时候mvnw就大显身手了。
mvnw 全名是maven wrapper,它的原理是在maven-wrapper.properties文件中记录你要使用的maven版本,当用户执行mvnw clean 命令时,发现当前用户的maven版本和期望的版本不一致,那么就下载期望的版本,然后用期望的版本来执行mvn命令,比如刚才的mvn clean。

mvnw使用步骤

下载maven

官网地址

对于 Windows 系统,下载 .zip 格式的文件并解压在这里插入图片描述

添加maven环境变量

M2_HOME = maven解压目录地址
Windows可以把%M2_HOME%\bin添加到系统Path变量中
在这里插入图片描述
在这里插入图片描述
此时 Maven 就安装完成了,可以在命令行中运行 mvn -v 查看是否安装成功
在这里插入图片描述

修改配置文件

将 D:\apache-maven-3.x.x\conf\ 目录下的 settings.xml 文件的移动到用户目录的 /.m2 文件夹内;并根据实际开发需要进行localRepository(本地仓库地址)和mirrors(镜像源)配置

在这里插入图片描述

下载Wrapper 插件

cd 到 Java 项目的根目录,确保根目录下存在 pom.xml 文件,在命令行执行 mvn wrapper:wrapper,就会将 Wrapper 的相关文件下载到当前目录

在这里插入图片描述
Wrapper 下载完成以后,需要使用 mvnw 命令来代替 mvn 命令(window环境)
在Linux或macOS下运行时需要加上./

使用mvnw
mvnw install -N

在这里插入图片描述

参考文章

使用mvnw
Maven 从安装到使用

<think>我们正在处理关于Metersphere修改Web访问地址的问题。根据用户的问题,我们需要提供修改Metersphere的Web访问URL的步骤。 Metersphere是一个基于Docker部署的开源持续测试平台,其Web访问地址通常由部署时的配置决定。修改URL通常涉及修改Metersphere配置文件,然后重新启动相关服务。步骤一般包括:1.找到Metersphere配置文件(通常位于安装目录下的conf目录中,如`/opt/metersphere/conf/`)。2.修改配置文件中与URL相关的设置(例如`ms.properties`或`application.yml`)。3.重新启动Metersphere服务以使配置生效。但是,具体的配置项和文件可能因版本和安装方式而异。常见的配置项可能是`server.address`或`ms.url`等。由于Metersphere的部署方式可能有多种(如Docker Compose、Kubernetes等),这里假设用户使用的是DockerCompose部署(这是官方推荐的部署方式)。在DockerCompose部署中,我们可以通过修改环境变量来改变访问地址。主要的环境变量包括:- MS_SERVER_HOST:服务器绑定的主机地址(默认为0.0.0.0)- MS_SERVER_PORT:服务器绑定的端口(默认为8081)- MS_BASE_PATH:基础路径(可选,用于设置上下文路径)- MS_URL:访问的URL(这个可能影响前端访问的基地址)然而,在Metersphere的Docker Compose部署中,通常通过修改`docker-compose.yml`文件中的环境变量来实现。此外,如果使用了反向代理(如Nginx),则还需要在反向代理中配置。因此,我们分两种情况:情况一:直接修改Metersphere服务绑定的地址和端口(适用于直接通过IP:PORT访问)情况二:通过反向代理配置域名(适用于通过域名访问)由于用户问题中只提到修改Web访问地址,我们提供直接修改端口和主机的情况,以及修改基础URL(可能涉及多个配置)的方法。具体步骤:1.进入Metersphere的安装目录(通常为`/opt/metersphere`)。2.编辑`docker-compose.yml`文件。3.在`metersphere`服务下,找到`environment`部分,修改或添加以下环境变量:- MS_SERVER_HOST:0.0.0.0#监听所有网络接口,通常不需要修改- MS_SERVER_PORT:新的端口号#例如8082- MS_BASE_PATH:新的基础路径#例如`/ms`,这样访问地址就会变成http://ip:port/ms- MS_URL:完整的URL(包括协议、域名、端口和基础路径) #例如`http://example.com:8080/ms`,这个会影响前端请求的基地址注意:MS_URL的配置非常重要,它必须与用户实际访问的URL一致,否则可能导致前端请求404错误。4.保存文件后,执行`msctlreload`命令(Metersphere提供的管理命令)重启服务。但是,如果用户想要修改的是通过域名访问,那么通常不需要修改Metersphere的端口,而是通过反向代理(如Nginx)来配置域名,并将请求代理到Metersphere的原始端口(如8081)。此时,需要设置MS_URL为新的域名。例如,在Nginx中配置:```server {listen80;server_namemetersphere.example.com;location /{proxy_passhttp://localhost:8081;proxy_set_headerHost $host;proxy_set_headerX-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_headerX-Forwarded-Proto$scheme;}} ```然后在`docker-compose.yml`中设置MS_URL为`http://metersphere.example.com`。5.修改后,需要重新启动Metersphere服务。由于修改配置可能涉及多个方面,建议用户根据实际需求调整。注意:在修改配置之前,建议备份`docker-compose.yml`文件。因此,我们提供以下步骤总结:步骤1:编辑`docker-compose.yml`步骤2:修改环境变量(如端口、基础路径、MS_URL)步骤3:保存并退出步骤4:执行`msctlreload`重新加载配置(或者`msctl restart`重启服务)如果用户需要修改为域名访问,还需要配置反向代理,并确保MS_URL设置为该域名。注意:在修改MS_URL时,务必确保该URL可以从客户端访问,并且协议(http/https)正确。另外,如果用户使用了HTTPS,还需要配置SSL证书,并在MS_URL中使用https。由于Metersphere配置可能涉及多个组件(如前端、网关、服务注册等),修改后如果出现无法访问的情况,请检查日志(`msctl logs`)来排查问题。最后,我们提供相关问题,以帮助用户深入了解。</think>### 修改 MeterSphere 的 Web 访问地址 要修改 MeterSphere 的 Web 访问 URL,需通过修改环境变量和配置文件实现,具体步骤如下: #### 1. **修改环境变量(核心步骤)** - 编辑 MeterSphere 安装目录下的 `.env` 文件(默认路径:`/opt/metersphere/.env`): ```bash vim /opt/metersphere/.env ``` - 修改以下关键参数: ```ini MS_URL="http://新域名:端口" # 完整新访问地址(如 http://test.example.com:8080) MS_SERVER_PORT=新端口号 # 服务监听端口(如 8080) ``` - **重要**:若使用域名访问,需确保: - `MS_URL` 包含协议(`http://` 或 `https://`) - 域名已解析到服务器 IP #### 2. **重启服务生效** ```bash cd /opt/metersphere msctl restart ``` #### 3. **反向代理配置(可选)** 若需通过 80/443 端口访问,需配置 Nginx: ```nginx server { listen 80; server_name 新域名; # 如 test.example.com location / { proxy_pass http://localhost:原服务端口; # 如 http://localhost:8081 proxy_set_header Host $host; } } ``` > **说明**:Nginx 配置后,`.env` 中的 `MS_URL` 需同步改为 Nginx 代理地址(如 `http://test.example.com`) #### 4. **验证配置** - 检查服务状态: ```bash msctl status ``` - 访问新 URL 测试连通性 #### 注意事项: 1. **防火墙**:开放新端口(如 `firewall-cmd --add-port=8080/tcp`) 2. **HTTPS**:若需 HTTPS,需额外配置 SSL 证书并修改 `MS_URL="https://..."`[^1] 3. **集群部署**:所有节点均需同步修改 `.env` 文件 > **故障排查**:若无法访问,检查 `docker logs ms-server` 日志中的 `APPLICATION_URL` 值是否更新。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值