Java
OSX
JMeter

MacにJMeterを入れる

最短距離を行く(結果論)

JMeterをコマンドラインでインストール

実行コマンド
brew install jmeter
実行結果
==> Downloading https://homebrew.bintray.com/bottles/jmeter-2.13.yosemite.bottle
######################################################################## 100.0%
==> Pouring jmeter-2.13.yosemite.bottle.tar.gz
🍺  /usr/local/Cellar/jmeter/2.13: 1,859 files, 78M

JDK8をインストール

dmgのダウンロードは以下から。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
"Accept License Agreement"にチェックを入れて
jdk-8u161-macosx-x64.dmg をダウンロードします。
開いたら迷わず次へ次へでインストールは完了するはず。

JMeterを起動

実行コマンド
jmeter

MacにJMeterを入れる手順はたったこれだけ。
あら簡単。
・・・・となるハズでした。
上記手順なら上手くいくはずですが、
私の場合、途中で Java 9 を入れてしまったり
紆余曲折あったので注意点として以降でまとめます。

MacでJMeterを使うまでの長い道のり(失敗手順)

JMeterをコマンドラインでインストール

実行コマンド
brew install jmeter
実行結果
==> Downloading https://homebrew.bintray.com/bottles/jmeter-2.13.yosemite.bottle
######################################################################## 100.0%
==> Pouring jmeter-2.13.yosemite.bottle.tar.gz
🍺  /usr/local/Cellar/jmeter/2.13: 1,859 files, 78M

ここまでは幸せでした。

JMeterを起動

実行コマンド
jmeter

するとJREを入れろと怒られます。
スクリーンショット 2018-03-09 11.40.57.png

JRE9(最新版)をインストール

ダイアログの 詳しい情報... からたどっていって以下のダウンロードページにたどり着きました。
http://www.oracle.com/technetwork/java/javase/downloads/jre9-downloads-3848532.html
jre-9.0.4_osx-x64_bin.dmg こいつを落としてJRE9をインストールします。

JMeterを起動(2回目)

実行コマンド
jmeter

その結果・・・
スクリーンショット 2018-03-09 11.40.57.png
・・・・・・え?

考えた末、JDK9(最新版)をインストール

java コマンドが使えないのが問題なのか?とJDKを入れることにしました。
http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html
jdk-9.0.4_osx-x64_bin.dmg

JMeterを起動(3回目)

実行コマンド
jmeter

その結果・・・

実行結果
Error: Java version is too low to run JMeter. Needs at least Java >= 1.6.0.

・・・・・・え?
なんなんすか? Java 9 入れましたよね?
深呼吸してからググると以下が見つかります。
https://stackoverflow.com/questions/47180767/apache-jmeter-error-java-version-is-too-low-to-run-jmeter
Java 8を入れ直すのは面倒そうなのでjar指定で起動する方法を試します。

JMeterを起動(4回目)

実行コマンド
java -jar /usr/local/Cellar/jmeter/2.13/libexec/bin/ApacheJMeter.jar

これでようやく画面を開くことができました。
めでたし、めでたし。

・・・・とは行かなかったのです。
「テスト計画」を右クリックしても何も表示されない。。。なんで?
コンソールを確認すると・・・・

実行結果
Uncaught Exception java.lang.ExceptionInInitializerError. See log file for details.
Uncaught Exception java.lang.NoClassDefFoundError: Could not initialize class org.apache.jmeter.gui.util.MenuFactory. See log file for details.
Uncaught Exception java.lang.NoClassDefFoundError: Could not initialize class org.apache.jmeter.gui.util.MenuFactory. See log file for details.
Uncaught Exception java.lang.NoClassDefFoundError: Could not initialize class org.apache.jmeter.gui.util.MenuFactory. See log file for details.
Uncaught Exception java.lang.NoClassDefFoundError: Could not initialize class org.apache.jmeter.gui.util.MenuFactory. See log file for details.

MenuFactoryがない。。。こりゃライブラリがダメダメだな。
JDK 8を入れ直すのが決定です。

JDK8をインストール

dmgのダウンロードは以下から。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
"Accept License Agreement"にチェックを入れて
jdk-8u161-macosx-x64.dmg をダウンロードします。
開いたら迷わず次へ次へでインストールは完了するはず。
はい、デジャヴュな気がします。

JMeterを起動(5回目)

実行コマンド
jmeter
実行結果
Error: Java version is too low to run JMeter. Needs at least Java >= 1.6.0.

こりゃJava 9のまんまですねorz

実行コマンド
java -version
実行結果
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

JDK9をアンインストール

https://yoshikawataiki.net/blog/java/post-287/
このサイトを参考に以下を実行しました。
まずはJDK本体をディレクトリごと削除します。

実行コマンド
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-9.jdk

次に、JVMが8しかないことを確認します。

実行コマンド
cd /Library/Java/JavaVirtualMachines/
ls
実行結果
jdk1.8.0_161.jdk

java コマンドでバージョン確認します。

実行コマンド
java -version

JDKが8になりました。

実行結果
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

JMeterを起動(6回目)

実行コマンド
jmeter

これでようやく正常起動ができました。
「テスト計画」を右クリックでメニューもちゃんと出ます。

お疲れ様でしたorz

使い方

後ほど記事を書こうかと思います。
が、以下のリンクが役に立ちそうです。
https://qiita.com/digdagdag/items/8a4023ddc7d549fa8de8

まとめ

  • JMeter + Java 9 は動きません。
  • JMeterに必要なのはJREではなくJDKです。
  • Java 9 を Java 8に戻すのは面倒です。