JMeter入門:Docker環境でJMeterの実行環境を構築する -Vol.5-

スポンサーリンク
JMeter入門:Docker環境でJMeterの実行環境を構築する -Vol.5- 環境構築
JMeter入門:Docker環境でJMeterの実行環境を構築する -Vol.5-
この記事は約4分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、Docker環境でJMeterの実行環境を構築する方法について解説しています。

スポンサーリンク

背景

JMeterを利用した負荷試験をする機会がありましたので、その時の内容を備忘として記事に残しました。

前回記事の内容

前回は、下記のファイル一覧の compose.yml を解説しました。本記事では、Makefile について解説しています。

        new file:   jmeter/Dockerfile
        new file:   jmeter/entrypoint.sh
        new file:   jmeter/test.sh
        new file:   jmeter/tests/trivial/plan.jmx
        new file:   Makefile
        new file:   compose.yml

Makefile

SHELL = /bin/bash
WOKR_DIR = ./
.DEFAULT_GOAL := help

# コンテナの状態
.PHONY: ps
ps:
	cd $(WOKR_DIR) \
	&& docker compose ps

# アプリのビルド
.PHONY: build
build:
	cd $(WOKR_DIR) \
	&& docker compose --profile tools build

# コンテナの削除
.PHONY: clean
clean:
	cd $(WOKR_DIR) \
	&& docker compose --profile tools down --rmi all --volumes --remove-orphans

# ログ
.PHONY: logs
logs:
	cd $(WOKR_DIR) \
	&& docker compose logs

# 実行
.PHONY: run
run:
	cd $(WOKR_DIR) \
	&& docker compose run -it --rm jmeter bash test.sh

# help
.PHONY: help
help:
	@grep -B 2 -E '^[a-zA-Z_-]+:' Makefile \
	| grep -v '.PHONY' \
    | grep -v -E '^\s*$$' \
	| tr '\n' ',' \
	| sed 's/--,/\n/g' \
	| awk -F, '{printf "%-20s %s\n", $$2, $$1}'

このMakefileは、Docker Composeを使用してコンテナを管理するための一連のターゲットを定義しています。各ターゲットは特定の操作を実行します。以下に、各ターゲットの説明を示します。

  • SHELL = /bin/bash: Makefileが使用するシェルを/bin/bashに設定します。
  • WORK_DIR = ./: 作業ディレクトリを現在のディレクトリに設定します。
  • .DEFAULT_GOAL := help: Makefileのデフォルトのターゲットをhelpに設定します。これは、Makefileを実行するときに特定のターゲットを指定しない場合に実行されるターゲットです。

各ターゲットは.PHONYと宣言されており、これはそれらがファイル名ではなく、単にコマンドのラベルであることを示します。

  • ps: Docker Composeで稼働中のコンテナの状態を表示します。
  • build: toolsプロファイルを使用してDocker Composeでアプリケーションをビルドします。
  • clean: toolsプロファイルを使用してDocker Composeで作成されたコンテナ、イメージ、ボリュームを削除し、孤立したコンテナも削除します。
  • logs: Docker Composeで管理されているコンテナのログを表示します。
  • run: jmeterサービスを対話的に実行し、完了後にコンテナを削除します。test.shスクリプトを実行します。
  • help: Makefile内のターゲットとその説明を抽出して表示します。

このMakefileは、開発プロセスを自動化し、コマンドを簡単に実行できるようにするために使用されます。Makefileは、プログラムのコンパイルやリンクなど、ファイルが変更されたときに自動的に更新する必要があるタスクを記述するために使用されます。

おわりに

今日は、Docker環境でJMeterの実行環境を構築する方法について解説しました。

よっしー
よっしー

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました