当前位置:   article > 正文

【MeterSphere】配置开发环境_metersphere在windows下搭建开发环境

metersphere在windows下搭建开发环境


前言

本文主要记录在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
    
    • 1
    • 2
  • 配套服务的端口和密码可以通过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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

注意:若出现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 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

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"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

项目打包和启动

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

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

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

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

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

在这里插入图片描述

  • 启动网关服务geteway,打开网址http://localhost:8000/,开启本地多模块调试(根据需要,启动对应后端服务即可)
    用户名: admin
    密码: metersphere

存在问题和解决方案

【后端】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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

【后端】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
  • 1

在这里插入图片描述

参考文章

使用mvnw
Maven 从安装到使用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/949877
推荐阅读
相关标签
  

闽ICP备14008679号