はまったのでめもめも。
JMeterをcuiで立ち上げるときはbin配下のjmeter.shを使います。
こんなかんじ。
$ sh jmeter.sh -n -t test.jmx Created the tree successfully using test.jmx Starting the test @ Mon Jul 30 13:19:01 JST 2012 (1343621941287) Waiting for possible shutdown message on port 4445
「-n」はnonguiモードで起動、「-t」はテストプランのファイルを指定するものです。
特に設定を変えていない場合、JMeterは4445ポートを使用し、テストプランが無限ループになっていればshutdownメッセージがこのポートに来るのを待ちます。
終了する場合は同ディレクトリにあるshutdown.shを使用します。
$ sh shutdown.sh Sending Shutdown request to port 4445
かんたん!
ただJMeterプロセスを複数立ち上げる場合はちょっと勝手が違います。
JMeterの実行自体は同じようにできます。
ただ、2つ目以降のプロセスは異なるポートを使用します。
具体的には2つ目のプロセスは+1したポート、つまり4446が使われるわけです。
shutdown.shは引数なしで実行すると4445ポートのJMeterを終了しようとします。
なので、4445以外のポートを使用しているJMeterプロセスを終了したい場合はポートを指定してやる必要があります。
$ sh shutdown.sh 4446 Sending Shutdown request to port 4446
かん…たん…!
すごい必死にリファレンスで引数調べてたわ。すごい単純にできたわ。
ちなみにJMeterが使用するポート番号はshファイルと同ディレクトリのjmeter.propertiesで変更できます。
デフォルトポートの変更は「jmeterengine.nongui.port」ってやつをいじればおっけーです。
ただ、shutdown.shさんはここの値を変えても4445さんを殺そうとするので、4445以外のポートを使用している場合はポートを教えて上げる必要がありそうです。
また、複数プロセス立ち上げると自動的に+1した値が使用されるという話でしたが、こいつには上限があるみたいです。
こいつも同じ設定ファイルに記述があり、「jmeterengine.nongui.maxport」というやつになりますが、デフォルトは4455になってます。
つまりデフォルトでは4445〜4455までの計10プロセスまではどんどん立ち上げればJMeterが勝手にportを割り振ってくれるわけですね。便利!