インストール
Requirements
- Java 8 or Java 9
- JREまたはJDK(HTTPS扱うならJDK推奨)
実行環境
- macOS 10.14.4 Javaなんでプラットフォームは基本的になんでもよさげ。
インストールコマンドはbrewでいける。versionは5.1.1だった。
brew install jmeter
それとMySQLに接続する為、ドライバをダウンドロードし、jmeterのlibフォルダ配下にjarファイルを置く
curl -LO https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.15.tar.gz
tar -xzvf mysql-connector-java-8.0.15.tar.gz
cd mysql-connector-java-8.0.15
cp mysql-connector-java-8.0.15.jar /usr/local/Cellar/jmeter/5.1.1/libexec/lib/
スクリプト作成
参考URL: https://jmeter.apache.org/usermanual/build-db-test-plan.html
- Add -> ThreadGroup
- Add → Config Element → JDBC Connection Configuration.
- Add → Sampler → JDBC Request
- Add → Listener → Summary Report
CLI
オプション
ざっくり
- -n でcli
- -t test file
- -l ファイル出力
jmeter -n -t example.test -l test.log
変数
Test Plan -> Config Element -> User defined variables
${}で呼び出し
insert into t1 values (null,'${test_var}');
CSVからの読み込み
Thread Group -> Add -> Config Element -> CSV Data Set Config
variable namesに変数名を入れる。カンマ区切りで複数入力可能
csvファイルは実行するファイルと同じ場所に配置しておく。
スレッド毎に新しい行を読み込む。新しい行がなければループする。
Tips
基本的に負荷試験はCLIでの実行する。
GUIはスクリプト作成時や確認用。
リスナーは無効化しておく。
Memory不足で落ちたらHEAPサイズ(Xmx)を上げる。
$ grep -i Xmx /usr/local/Cellar/jmeter/5.1.1/libexec/bin/jmeter
## JVM_ARGS="-Xms1g -Xmx1g" jmeter etc.
## Defaults to "-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"
: "${HEAP:="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"}"
2年ぐらい前に触った時は1Gもなかった気がする。
それでもダメなら、下記を参考に調整かな
https://www.blazemeter.com/ja/blog/nine-easy-solutions-jmeter-load-test-%E2%80%9Cout-memory%E2%80%9D-failure