#jmeterこんにちは角田(tsunoda)です。先日jmeterによる負荷試験を行ったので、ハマった部分などをご紹介します。jmeterインストール今回はjmeter-3.3を入れました。ローカルのmacに入れてみる。jmeterのソースが置いてあるページから3.3をインストールしました。https://archive.apache.org/dist/jmeter/binaries/上記URLよりapache-jmeter-3.3.tgzをダウンロード。インストールすると、apache-jmeter-3.3/というディレクトリができます。jmeter-3.3を起動apache-3.3/bin/jmeter起動するかと思いきや!javaのバージョンが違っていたのでjavaの1.8.0を入れました。"1.8"`PATH=$JAVA_HOME/bin:$PATHいざ起動!apache-meter-3.3/bin/jmeter動きました。参考URLに貼っておきます。先輩に教わった小技を紹介します。画面の数だけサンプラーでHTTPリクエストを登録する必要があります。これは、画面が多ければ多いほど面倒です。ブラウザで操作した動きをシナリオとして記憶してくれます!記憶コントローラでシナリオを作成してみましょう。図のようにワークベンチから選択します。次に、対象となるコントローラの欄から、ワークベンチ>記憶コントローラを選択します。ブラウザのプロキシ設定をします。HTTPプロキシサーバをstart!!そのままアクセス先を最後までスクロールすると全て取得できます。gif,css,jsファイルも入ります。注意点としては、HTTPプロキシサーバを停止しない限り記憶し続ける点です。スクロールしちゃうと取得し過ぎるので気をつけなはれや!それから、cssやjsファイルが取得できない事があります。ローカルのキャッシュのようです。シークレットモードでアクセスすると取得できます。結果もよりリアルなものを取れて便利だと思います。保存したjmxファイルを実行したら、実行できませんでした。以下のエラーが出ました。class!これはなかなか苦戦しました。結論を言うと、親要素が無い不完全なjmxファイルを作成していたからです。回避するためには、ファイルメニューの「テスト計画に名前をつけて保存」を使う。テスト計画を選択した状態で「別名で保存」ボタンを押す。自分はまず「テスト計画を保存」を利用。その後、条件を変更したので「別名で保存」を使いました。実はこの「別名で保存」は、選択されたものを別名で保存するという意味の保存でした。子要素を選択した状態で「別名で保存」をすると部分的な保存になってしまうのでした。思っていた「別名で保存」とは違った。ファイルメニューの「テスト計画に名前をつけて保存」を使えば大丈夫です。同じディレクトリにlogファイルが作成されるようにスクリプトを作って負荷試験を行いました。run.sh下図のようにthread、ramp、loopを変数にして、jmxファイルを作成しています。スクリプト(run.sh)の引数で毎回指定できるように組んでいます。run.shの中身ではこのコマンドが実行されています。-JRamp=$4結果をfileに書き出しています。引数でスレッド数などを変えて指定URLの負荷試験を行いました。小技を1つご紹介します。テスト計画に他のファイルも追加して、1度に全部ではなく、1つずつ全部流したい。そんな時はこうします。jmeterの編集を押す→併合(マージ)を押して、追加するファイルを選択。テスト計画を選択して、「各スレッドグループを別々に実行」にチェックを入れます。すると1つずつ流してくれます。スレッドグループと同じ階層に統計レポートを置く。すると全部その統計レポートに入ります。緑の実行ボタンを押せば、1スレッドグループずつ全部やってくれます。負荷試験ツールとしては分かりやすいツールだと思いました。grafanaなどと合わせて使うとより負荷の状況が明確に見えますね。掘って♂勉強してみようかと思います。