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を利用した負荷テストの方法について(こちらの記事)[http://nishinatoshiharu.com/jmeter-example/]に書いたのでもし興味がある人は参考にしてみてください。