2024.11.14
いまさらNode.jsを知ろう~環境構築も~
2024.08.05
開発環境・ツール負荷試験ツールのGatlingを使ってみたメモ
JTです。
負荷試験ツール:Gatlingを使う機会があったので手順を記録しておきます。
★3.10まではgatling.bat/shによる実行でしたが、3.11以降はMaven(mvnw)を使った方法に変わっています。本記事では3.11以降の内容で更新しました
https://docs.gatling.io/reference/install/oss/
→Javaで動く負荷試験ツール。JavaのバージョンはGatlingの公式曰く
Java Version
Gatling supports 64bits OpenJDK LTS (Long Term Support) versions: 11, 17 and 21. Other JVMs such as 32bits systems or OpenJ9 are not supported.
「Using the Bundle」
https://docs.gatling.io/reference/install/oss/#use-the-standalone-bundle
より
gatling-charts-highcharts-bundle-xxxxx-bundle.zip
をダウンロードし、作業場所に展開する
→OpenJDK 21を利用する
https://learn.microsoft.com/en-ca/java/openjdk/download#openjdk-21
→microsoft-jdk-21.0.2-windows-x64.msi
をダウンロードしてインストール
→インストール先:C:\Program Files\Microsoft\jdk-21.0.2.13-hotspot\
Windowsのシステム環境変数に設定してjavaコマンドが実行できるようにします
set JAVA_HOME
java -version
openjdk version "21.0.2" 2024-01-16 LTS
OpenJDK Runtime Environment Microsoft-8905927 (build 21.0.2+13-LTS)
OpenJDK 64-Bit Server VM Microsoft-8905927 (build 21.0.2+13-LTS, mixed mode, sharing)
展開したgatlingのディレクトリ直下で
mvnw.cmd gatling:recorder
とするとレコーダーが起動します
レコーダーによる記録方法は癖があるので以下を参照
https://qiita.com/yasuaki0206/items/c84361faef08d6788fd0
メモ:
1)ClassName にテスト用のシナリオ名を書く
2)WindowsOSのプロキシ(上記の場合localhost:8000)を有効にする
3)[Start!]を押し、ブラウザを開いて負荷をかけたい処理について記録を開始する
4)シナリオ作成が終わったらツールを閉じる
→シナリオファイルがOutputで指定したディレクトリの下に生成される
■生成されたシナリオをGatlingから実行する際は
mvnw.cmd gatling:test
で。複数のシナリオが保存されている場合は
Choose a simulation number:
[0] computerdatabase.ComputerDatabaseSimulation
[1] io.gatling.demo.knowledge81
のように表示されるので番号を指定して選択。
※テスト実行時はプロキシを解除しておいてください
※多重度を上げると性能不足になることが多いので、実際の負荷試験時はAWS上に実行サーバを起動して行います
参照:
https://www.jhipster.tech/jp/running-tests/
# install_corrett(OpenJDK)
sudo dnf install java-21-amazon-corretto-devel
# 確認
java -version
openjdk version "21.0.1" 2023-10-17 LTS
OpenJDK Runtime Environment Corretto-21.0.1.12.1 (build 21.0.1+12-LTS)
OpenJDK 64-Bit Server VM Corretto-21.0.1.12.1 (build 21.0.1+12-LTS, mixed mode, sharing)
# JAVA_HOMEセット
# セットしないとワーニングが出る:Warning: JAVA_HOME environment variable is not set.
export JAVA_HOME=/usr
curl -O https://repo1.maven.org/maven2/io/gatling/highcharts/gatling-charts-highcharts-bundle/3.11.5/gatling-charts-highcharts-bundle-3.11.5.zip
unzip ./gatling-charts-highcharts-bundle-3.11.5.zip
→mvnwも含めたパッケージが展開される。
src/test/java: シミュレーション コードを配置する場所。パッケージ フォルダーの階層を尊重する必要があります。
src/test/resources: フィーダー ファイルやリクエスト本文のテンプレート、Gatling、Akka、Logback の構成ファイルなどのソース コード以外のファイル。
pom.xml: プロジェクトに関する Maven 情報。
target: テスト結果が生成される場所。
cd (ガトリング配置先)/src/test/java/以下にWindows環境で作成したClassname.javaを配置する
cd /path_to_workdir/gatling-charts-highcharts-bundle-3.11.5
./mvnw gatling:test
複数のシナリオが保存されている場合は以下で選択して実施
Choose a simulation number:
[0] computerdatabase.ComputerDatabaseSimulation
[1] io.gatling.demo.knowledge81
実行ログの下端にファイルの出力先が表示されるので、その内容を取得して確認できます
Reports generated, please open the following file: file:///path_to_log/index.html
→上記で出力されたindex.htmlを開く
※シナリオの作り方、多重度度の設定方法、また実行結果の分析方法については別途記事を作成予定です(…)
以上
【記事への感想募集中!】
記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!【テクノデジタルではエンジニア/デザイナーを積極採用中です!】
下記項目に1つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
【テクノデジタルのインフラサービス】
当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。
最近の記事
タグ検索