Macで始めるJMeter実行環境構築手順(brew caskでJavaもアップデートするよ)

インフラ

はじめに

アプリケーションの負荷テストツールの一つにJMeterといわれるツールがあります。JMeterをMacで実行しようとしたところ以下のような問題に当たりました。

  • MacでJmeter実行するとApacheJMeter.jarを起動できませんでしたとエラーになる
  • 「開発元が未確認」と言われファイルが開けない
  • Javaのバージョンが古いと言われJMeterが実行できない

今回は備忘録も兼ねてMacでJMeterを実行する環境構築の手順を説明します。

ダウンロード

まずはJmeterのダウンロードページでJMeterをダウンロードします。
ここではBinariesと書かれた項目からzipファイルをダウンロードします。

Source(ソースファイル)は人間に読めるコードでBinaries(バイナリーファイル)は機械に読めるコードです。ソースファイルからバイナリーファイルに変換することをコンパイルと言いいます。
ソースファイルはツールを自分なりにカスタマイズする(JMeterというツール自体をカスタマイズしたりロジックを確認したりする)人が利用するものですので、単純にツールを利用するのが目的であれば(ほとんどの人はこちらに該当する)バイナリーファイルをダウンロードしてくだい。

JMeterの実行・・・できない

zipファイルがダウンロードできたので解凍してJmeterを実行します。
解凍したディレクトリの中にbinディレクトリがあり、さらにその中にApacheJMeter.jarというのがあるのでそれをクリックするとJMeterが起動します。しかし、実際にクリックすると以下のような「開発元が未確認のめ開けません」というエラーが出てしまいました。

これはApp Store以外でダウンロードしたファイルを開く時などに出てくるエラーです。これを解決するには「セキュリティとプライバシー」で設定を変更すればいいのですが、実はコントロールキーを押しながらクリックすることで開くことができます。実際にコントロールキーを押しながら開くと以下のようになりますので「開く」を選択します。

これでJMeterが実行できると思ったのですが以下のように「Java JARファイル”ApacheJmeter.jar”を起動できませんでした」とエラーが出てきました。

Javaのアップデートをする

JMeterを起動した際に「コンソールでエラーメッセージを確認してください」というエラーメッセージが出たので実際にエラーメッセージを確認します。binディレクトリにApacheJMeter.jarの他にjmeterというファイルがあるのでそれを開くとコンソールが確認できます(whindowsの場合はjmeter.batを開く)。すると以下のように「Error: Java version is too low to run JMeter. Needs at least Java >= 1.8.0.」となってしまいました。

ダウンロードしたJMeterはJavaのバージョンが1.8以上で動作をするのですがMacに入っているJavaのバージョンがそれより古かったので起動できなかったようです。

実際にバージョンを確認してみると、1.6.0_65でした。

$ java -version

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-468-11M4833)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-468, mixed mode)

ですので、Javaのバージョンをアップデートします。
JavaのアップデートにはHomebrew-Caskを利用することでコマンドライン上で実行することができます。

Homebrew-CasskはHomebrewを拡張したものでAtomやGoogle ChromeのようなGUIでインストールするアプリもコマンド上で簡単にインストールできるようにするものです。
$ brew update
$ brew cask install java

バージョンを再度確認すると9.0.4に上がっていることがわかります。

javaの表記体系がjava9から変わったので、1.6.0_65から9.0.4だと大幅なアップデートのように見えますが実際はJava6からJava9へアップデートしています。
$ 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)

実行

これでJMeterを起動する準備ができたのでApacheJMeter.jarをクリックして起動をさせます。
以下のような画像が表示されたらOKです。

最後に

実際にJMeterを利用した負荷テストの方法についてこちらの記事に書いたのでもし興味がある人は参考にしてみてください。