インフィニティソリューションズ株式会社ブログ

強力な負荷テストツール、JMeter Plugins at Google Code

Apache JMeterは、性能テスト、負荷テスト用のツールとして広く使われているが、そのJMeterをさらに便利にするプラグインがGoogleから配布されている。JMeter Plugins at Google Codeだ。

Methods & Toolsのサイトで、そのレビューが掲載されているので紹介しよう。

JMeter-Plugins – More Obvious and Powerful Load Testing(JMeter-Plugins – 分かりやすく強力な負荷テストツール)

‘JMeter Plugins at Google Code (JP@GC) is a popular third-party plugins set for JMeter, extending its functionality with a dozen of graphs, new load delivery controllers and other functions that are missing from the original JMeter package. Basically, the JP@GC set contains two types of plugins: graph plugins and JMeter functionality extensions.’

「JMeter Pugins at Google Code (JP@GC)は、JMeter用として人気のあるサードパーティ製プラグインのセットで、数十のグラフ機能、新しい負荷配分コントローラ、その他オリジナルのJMeterパッケージにはない機能を拡張追加したもの。基本的にJP@GCは2種類のプラグインからなる。グラフ・プラグインと、JMeter機能拡張だ。」

テスト下バージョン:2012年5月14日時点のJMeter-Plugins 0.5.2
ライセンスと価格: Free & Open Source (無料かつオープンソース)
サポート: ユーザのメーリングリスト (http://groups.google.com/forum/#!forum/jmeter-plugins)
ドキュメント: オンライン(英語) (http://code.google.com/p/jmeter-plugins/)

インストール

‘To add extensions to JMeter, you should simply locate the lib/ext folder under JMeter installation path and extract the JP@GC distribution package contents into it. ‘

‘Restart JMeter to load the installed plugins and look for items named like «jp@gc – …» in JMeter menus.’

「JMeterに拡張を追加するのは、JMeterのインストールパスの下のlib/extフォルダに、JP@GCの配布物を解凍するだけ。」

「インストールしたプラグインをロードするためにJMeterをリスタートし、JMeterメニューの『jp@gc-…』を探せばよい。」

— なお現在の最新版は、2012年6月13日時点の0.5.3。

ドキュメント

‘Every JP@GC plugin has an immediate «Help on this plugin» link, opening Wiki page containing description for current extension in Web browser. If you still confused or have some tricky issue — feel free to ask at project support mailing list.’

「全てのJP@GCプラグインには、『Help on this plugin』のリングがあり、Wikiのページが開き、ウェブブラウザ内の使っている拡張の説明が表示される。それでもわからない、あるいは、変な問題に直面した場合には、プロジェクトサポートのメーリングリストに問い合わせる。」

グラフィックプラグイン

‘The JMeter tool itself has a sound position in the world of performance testing, because it offers professional level features, comparable to commercial tools, and still stays free and open source. However, out-of-the-box JMeter has some weak points, mainly a lack of reporting features and visualizations.’

「JMeterツール自体は性能テストツールの世界で確固たる地位を築いている。というのも、商用ツールに比べて、プロレベルの機能を有しており、なおかつ無料でオープンソースであるからだ。しかしながら、JMeterそのままでは、主にレポート機能と可視化が弱い。」

‘JP@GC targets this weak point and offers several groups of test results visualization plugins. All of these plugins can be found in Edit => Add => Listener menu of JMeter. Every graph plugin in JP@GC has three tabs: Chart,Rows and Settings. Don’t forget to play with controls at Settings tab — there are a lot of look-and-feel settings to get the best view of your data. Also consider right-clicking the graph area, there is popup menu for saving image or CSV data under it.’

「JP@GCは、この弱点をターゲットとしており、テスト結果可視化プラグインの固まりをいくつか提供している。プラグインは全てJMeterの Edit => Add => Listenerメニューにある。JP@GCの全てのグラフ・プラグインには3つのタブがある。「チャート」、「行」、「設定」だ。設定タブででいろいろ試してみることをお勧めする。分かりやすい表示をおこなえるよう、各種の見た目の設定が用意されている。また、グラフ領域を右クリックすると、画像かcsvデータで保存するためのポップアップメニューが表示される。」

ターゲットリソースのモニタリング

‘PerfMon Metrics Collector is the most popular component of the jmeter-plugins set. It allows to monitor the resources usage of the target computer within JMeter. It requires a special ServerAgent process to be started at target computer and plots collected data on nice graph (Figure 1).’

「PerfMon Metrics Collectorは、jmeter-pluginセットの中でも最もよく使われるコンポーネント。JMeterでターゲットコンピュータのリソース使用状況をモニターできる。ターゲットコンピュータ上で特別のServerAgentプロセスを起動する必要があるが、収集したデータをきれいなグラフにしてくれる(図1)。」

Figure 1 - Target Resource Monitoring Plugin (source:methodsandtools.com)

‘PerfMon plugin supports collecting an unlimited number of metrics at the same time. It can collect over 75 separate metric types in groups: CPU, Memory, Disk, Network, Swap, TCP statistics, Java JMX metrics. Per-process and system total metrics are supported. In case you need to collect a custom metric that is calculated by your program/script, you may use the Custom metric type.’

「PerfMonプラグインには、同時に収集する値の種類数に制限はない。75種類を超える種類の値を収集できる。CPU、メモリ、ディスク、ネットワーク、スワップ、TCP統計、Java JMXなど。プロセス単位やシステム全体の数値もサポートされている。プログラムやスクリプトで計算したカスタム値を必要とする場合には、Custom Metric typeを選択すればよい。」

— この他にも、時間経過に対する表示、応答時間の分布状況の表示、コマンドラインのサポートなどもある。

負荷配分プラグイン

‘The original JMeter package contains only one load supply controller: simple Thread Group. However, many users need solution to configure threads to start by bunches, or to create complex load supply scenario. JP@GC provides two solutions: Stepping Thread Group and Ultimate Thread Group. For those users who use not thread-driven, but request-per-second-driven load testing, there Throughput Shaping Timer plugin.’

「オリジナルのJMeterパッケージには、単純なThread Groupという1種類の負荷生成コントローラしかない。しかしながら、多くのユーザは最初から多数の負荷があるとか、複雑な負荷生成シナリオを設定できるソリューションを必要としてる。JP@GCでは2種類のソリューションがある。Stepping Thread GroupとUltimate Thread Groupだ。スレッド数ではなく、毎秒のリクエスト数で負荷テストを行いたい場合には、Throughput Shaping Timerプラグインがある。」

— Stepping Thread Groupは段階的にスレッドが増減していくもの。急増減、タイミングが遅れて開始されるあるいは終了する、ホールドされるなどはUltimate Thread Groupで対応可能。

— この他に、DNSサーバのテスト用UDP Protocal Sampler、大規模ファイルアップロード・ダウンロードテスト用HTTP Raw Requestなどもある。