よっしー
こんにちは。よっしーです(^^)
今日は、Docker環境でJMeterの実行環境を構築する方法について解説しています。
背景
JMeterを利用した負荷試験をする機会がありましたので、その時の内容を備忘として記事に残しました。
前回記事の内容
前回は、下記のファイル一覧の jmeter/entrypoint.sh を解説しました。本記事では、jmeter/test.sh について解説しています。
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
jmeter/test.sh
#!/bin/bash
#
# Test the JMeter Docker image using a trivial test plan.
variables-from-command-line
export TARGET_HOST="www.map5.nl"
export TARGET_PORT="80"
export TARGET_PATH="/kaarten.html"
export TARGET_KEYWORD="Kaartdiensten"
YYYYMMDD_HMS=$(date "+%Y%m%d_%H%M%S")
T_DIR=tests/trivial
# Reporting dir: start fresh
R_DIR=${T_DIR}/${YYYYMMDD_HMS}/report
rm -rf ${R_DIR} > /dev/null 2>&1
mkdir -p ${R_DIR}
cp ${T_DIR}/plan.jmx ${T_DIR}/${YYYYMMDD_HMS}/
bash ./entrypoint.sh -Dlog_level.jmeter=DEBUG \
-JTARGET_HOST=${TARGET_HOST} -JTARGET_PORT=${TARGET_PORT} \
-JTARGET_PATH=${TARGET_PATH} -JTARGET_KEYWORD=${TARGET_KEYWORD} \
-n -t ${T_DIR}/plan.jmx -l "${T_DIR}/${YYYYMMDD_HMS}/plan.jtl" -j "${T_DIR}/${YYYYMMDD_HMS}/jmeter.log" \
-e -o ${R_DIR}
echo "==== jmeter.log ===="
cat "${T_DIR}/${YYYYMMDD_HMS}/jmeter.log"
echo "==== Raw Test Report ===="
cat "${T_DIR}/${YYYYMMDD_HMS}/plan.jtl"
echo "==== HTML Test Report ===="
echo "See HTML test report in ${R_DIR}/${YYYYMMDD_HMS}/index.html"
このBashスクリプトは、JMeterのDockerイメージを使用して簡単なテストプランを実行するためのものです。以下にスクリプトの各部分の解説を示します:
- テスト対象のホスト、ポート、パス、キーワードを環境変数としてエクスポートしています。
- 現在の日時を年月日_時分秒の形式で変数YYYYMMDD_HMSに格納しています。
- テストファイルが格納されているディレクトリを変数T_DIRに設定しています。
- レポートを格納するディレクトリを作成し、既存のものがあれば削除しています。
- テストプランファイル(plan.jmx)をYYYYMMDD_HMSディレクトリにコピーしています。
- entrypoint.shスクリプトを実行し、JMeterのログレベルをDEBUGに設定し、ユーザー定義変数を渡しています。また、テストプランを実行し、結果をplan.jtlに、ログをjmeter.logに出力しています。 -eオプションでHTMLレポートを生成し、-oオプションでその出力先を指定しています。
- jmeter.logファイルの内容を表示しています。
- plan.jtlファイルの内容を表示しています。
- HTMLテストレポートの場所を表示しています。
このスクリプトは、JMeterテストの実行とその結果のレポートを生成するための一連のコマンドを含んでおり、テストの実行状況を確認するためのログファイルやレポートファイルの内容を表示するコマンドも含まれています。スクリプトの実行により、JMeterは指定されたテストプランに従ってテストを実行し、その結果をログファイルとHTMLレポートで確認することができます。
おわりに
今日は、Docker環境でJMeterの実行環境を構築する方法について解説しました。
よっしー
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント