1.背景
最近、同社はインターフェイスの自動テスト プラットフォームを構築したいと考えていました。ゼロから始めるのは大変な作業なので、二次開発用のオープン ソース プラットフォームを見つける準備ができていました。数日間探した結果、MeterSphere を見つけました。 -stop オープンソース テスト プラットフォーム, using java+vue. テスト管理、インターフェイス テスト、UI テスト、パフォーマンス テストなど多くの機能をカバーしています. まずは公式トライアル アドレスで体験した方が満足なので、構築する予定ですまずは地元で。
プロジェクト Github アドレス: GitHub - metersphere/metersphere: MeterSphere は、ソフトウェアの品質を保護するワンストップのオープンソース継続的テスト プラットフォームです。テストには、MeterSphere を選択してください。
公式ドキュメント: MeterSphere ドキュメント
無料トライアルのアドレス: MeterSphere - Professional Testing Cloud
2. 地域環境
- jdk: 17 (メータースフィアには最低 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
上記 2 つのプロジェクトのコードをプルダウンした後、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 に、allowPublicKeyRetrieval=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 ファイルの実行エラーが原因で発生します。プロジェクト パス\backend\src\main\resources\db\migration\V68__modify_api_test_case.sql ファイルを見つけて、その中の SQL を Navicat にコピーして実行します。サービスを再起動するだけでエラーが修正されます
3.6. フロントエンドサービスの開始
Progress フロントエンド プロジェクトで、npm install を実行して依存関係をインストールします。
Frontend\package.json の設定項目を変更します。Windows マシンを使用しているため、nodejs v17 以降の OpenSSL3.0 の問題を解決するには、エクスポートを SET に変更し、--openssl-legacy-provider パラメーターを追加する必要があります。許可するアルゴリズムとキー。サイズ制限
変更後、npm run build-winを実行してコンパイルします。
コンパイルが成功したら、npm runserve-win を実行してバックエンド サービスを開始します。
上記の情報が表示されれば正常に起動できたので、ブラウザでアクセスしてください。
デフォルトのアカウント admin/metersphere を使用してログインして使用します。