오픈 소스 테스트 플랫폼 MeterSphere의 Windows 배포 기록

1.배경

최근 회사에서는 인터페이스 자동화 테스트 플랫폼을 구축하고 싶었는데 처음부터 시작하려면 너무 많은 작업이 필요했기 때문에 2차 개발을 위한 오픈 소스 플랫폼을 찾을 준비가 되었고 며칠간의 검색 끝에 MeterSphere를 발견했습니다. -java+vue를 이용한 오픈소스 테스트 플랫폼 중지 테스트 관리, 인터페이스 테스트, UI 테스트, 성능 테스트 등 다양한 기능을 다루고 있습니다. 공식 트라이얼 주소에서 먼저 체험해 보시는 것이 더 만족스럽기 때문에 구축해 볼 예정입니다. 현지에서 먼저.

프로젝트 Github 주소: GitHub -metersphere/metersphere: MeterSphere는 소프트웨어 품질을 보호하는 원스톱 오픈 소스 연속 테스트 플랫폼입니다. 테스트하려면 MeterSphere를 선택하세요!

공식 문서: MeterSphere 문서

무료 평가판 주소: MeterSphere - Professional Testing Cloud

2. 지역 환경

  • jdk: 17(metersphere에는 최소 11이 필요함)
  • 노드: v18.15.0
  • MySQL:8.0.33
  • 메이븐: 3.5.4
  • 도커 데스크탑
  • redis, Zookeeper, kafka: docker-desktop을 사용하여 이미지 설치
  • 아이디어

3.Windows 배포

3.1 풀코드

Metersphere: 프런트엔드, 백엔드 코드를 포함한 주요 애플리케이션 시작 마이크로서비스에 익숙하지 않기 때문에 마이크로서비스를 분할하지 않고 v2.2 버전을 사용합니다.

https://github.com/metersphere/metersphere

ms-jmeter-core: jmeter 코어 종속성,metersphere와 동일한 버전 선택, Github 주소:   https://github.com/metersphere/ms-jmeter-core

위 두 프로젝트의 코드를 풀다운한 후 idea를 사용하여 maven과 jdk를 열고 구성합니다.

3.2 ms-jmeter-core 패키지

ms-jmeter-core 프로젝트의 maven과 jdk를 구성한 후 pom.xml에 플러그인 오류가 있을 수 있으니 걱정하지 않으셔도 됩니다.

성공적으로 패키징하려면 터미널에서 직접 mvn clean install을 실행하세요.

3.3.mysql 구성

 공식 문서에 따르면 소스 코드가 빌드됩니다(프런트엔드와 백엔드 분리). - MeterSphere 문서 MeterSphere에는 데이터베이스의 일부 구성 항목에 대한 요구 사항이 있으며, 로컬 데이터 구성을 수정해야 합니다.

다음을 로컬에서만 수정했습니다.

max_connections=2000
innodb_buffer_pool_size=1G
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

그런 다음 서비스에서 mysql 서비스를 다시 시작하고 데이터베이스를 생성하십시오.

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

참고: 구성을 수정한 후 mysql 서비스를 시작할 수 없는 경우 sql_mode 매개변수에서 NO_AUTO_CREATE_USER를 제거하고 다시 시작할 수 있습니다.

3.4.미터스피어 구성

공식 문서의 소스 코드에 따라 구축됨 (프런트엔드와 백엔드 분리) - MeterSphere 문서

먼저 Metersphere 프로젝트의 루트 디렉터리에 \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_REPORTS

# 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

프로젝트 디렉터리의 backend/src/main/resources/jmeter/bin 디렉터리에 있는 구성 파일을 프로젝트 루트 디렉터리의 \opt\meter\bin에 복사합니다.

그런 다음 Application.java, logback.xml 및 GeneratorConfig.xml에서metersphere.properties 경로를 수정하십시오.

base.properties 파일에서 jmeter.home 수정

Spring Boot 시작 항목 수정

수정 옵션 드롭다운 옵션에서 명령줄 단축을 선택합니다.

JAR 매니페스트 선택 - java -cp classpath.jar cleassName [args]

3.5 백엔드 서비스 시작

백엔드 서비스를 시작하기 전에 redis, Zookeeper, kafka 서비스를 시작해야 하며, 시작 방법은 자세히 설명하지 않습니다.

Application.java를 실행하여 백엔드 서비스 시작

오류 1:

程序包io.metersphere.xpack.ui.dto不存在

xpack은 사용료를 지불해야 하는 기업용 버전 패키지이므로 xpack과 관련된 모든 종속성 및 참조를 주석으로 처리하세요.

오류 2:

Public Key Retrieval is not allowed

\opt\metersphere\conf\metersphere.properties의 spring.datasource.url에 allowedPublicKeyRetrieval=true 매개변수를 추가합니다.

spring.datasource.url=jdbc:mysql://localhost:3306/metersphere_dev?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true

오류 3:

Schema `metersphere_dev` contains a failed migration to version 68

해당 오류는 데이터베이스 테이블 생성 시 sql 파일 실행 오류로 인해 발생하며, 프로젝트 path\backend\src\main\resources\db\migration\V68__modify_api_test_case.sql 파일을 찾아 그 안에 있는 sql을 Navicat에 복사하여 실행하면, 오류를 수정하고 서비스를 다시 시작하면 됩니다.

3.6 프런트엔드 서비스 시작

Progress 프런트엔드 프로젝트에서 npm install을 실행하여 종속성을 설치합니다.

frontend\package.json의 구성 항목을 수정합니다. Windows 머신을 사용하고 있으므로 내보내기를 SET로 변경하고 --openssl-legacy-provider 매개변수를 추가하여 nodejs v17 이상 OpenSSL3.0의 문제를 해결해야 합니다. 알고리즘과 키를 허용합니다. 크기 제한

수정 후 npm run build-win을 실행하여 컴파일합니다.

컴파일이 성공적으로 완료되면 npm run Serve-win을 실행하여 백엔드 서비스를 시작합니다.

위의 정보가 보이면 성공적으로 시작되었다는 뜻이므로, 다음으로 브라우저에서 접속해 보세요.

기본 계정 admin/metersphere를 사용하여 로그인하고 사용하세요.

추천

출처blog.csdn.net/y954227239/article/details/132694147