
番外編
Visual StudioでのJava負荷テストをJMeterと比較してみた
株式会社アークウェイ
黒石高広
2011/1/6
Visual Studioを利用したJava負荷テストのやり方
本稿ではサンプルとして、Java開発者にはおなじみの「Java Pet Store」(バージョン 1.3.2)に対してVisual Studio 2010の負荷テスト機能を利用してみる。
なお今回は、「Java Pet Store」のWebコンテナをサーバ上でコマンドラインから実行し、Visual Studioで負荷テストを実行するクライアントを「Java Pet Store」と同一のマシンで実行している。
■ Webアプリへの操作を記録
まず、Visual Studioを起動し、テスト用プロジェクトを1つ作成する。プロジェクト作成後、Visual StudioのメニューからWebパフォーマンステストを作成すると、自動的にInternet Explorerが起動するので、そのままWebアプリケーション上でいくつかの操作を行う。
すると、Internet Explorerの「Webテストレコーダー」アドインにWebアプリケーションに対する操作が、そのまま記録される。Webブラウザを終了すると、それらの操作が作成したWebパフォーマンステストの記録が保存される。
![]() |
■ 負荷テストを実行
次に、Visual Studioの同じテストプロジェクトに対して負荷テストを作成する。すると、負荷テスト作成のウィザードが起動するので、このウィザード上で前述のWebパフォーマンステスト機能を使用するように設定する。
![]() |
![]() |
そのほか、負荷テストを行う同時ユーザー数やネットワーク形態やWebブラウザの割合、負荷テストの計測時間などを設定する。
Visual Studioのメニューから負荷テストを実行すると、設定に従って負荷テストが実行される。負荷テスト実行後は、Visual Studioにそのまま負荷テストの実行結果が表示されるので、この実行結果を分析しアプリケーションのボトルネックを探し出すことになる。
![]() |
ここまでの操作は、主にInternet Explorerの操作とVisual Studioのメニュー操作が中心となるため、C#などの.NETの知識がなくても簡単に負荷テストができる。もちろん、.NETの知識があれば、さらに高度な負荷テストのカスタマイズも可能だ。
本稿で紹介したようにVisual Studioの負荷テスト機能を利用すれば、Javaアプリケーションに対しても負荷テストが可能である。もちろんPHPやRuby、PerlなどのJava以外のWeb技術に対してもこの負荷テスト機能を使用できる。
最後に、Visual Studio負荷テスト機能とJMeterとの違いについて分析しておこう。2つのツールの1番大きな違いとしては、CPU使用率などのデータとの比較の容易さにある。
通常、負荷テストではWebサーバ側のCPU使用率やディスクアクセス数などを計測する必要がある。JMeterを使用する場合、それらのデータは別のツール(Windowsであれば、タスク マネージャのパフォーマンスモニタ)を使って計測することになる。当然、JMeterでのテスト結果のデータをExcelなどで突き合わせる必要が生じ、分析に手間が掛かってしまう。
その点Visual Studioを使用した場合、Webサーバ上のCPU使用率やディスクアクセス数などのデータも自動的に収集できるため(サーバ側がWindowsであることが前提となるが)、簡単に負荷テスト結果のデータと比較し、分析できる。
JMeterには無償で使用できるという大きな優位点があるが、Visual Studio負荷テスト機能には有償ツールならではの、大規模な負荷テストの準備機能や、総合的なデータ分析の容易さなどの優位点がある。
「Visual Studioは.NET専用のツールだから……」そんな偏見は一度捨ててみて、JavaアプリケーションであってもVisual Studioの負荷テスト機能を一度試してみてはいかがだろうか。
■ @IT関連記事
![]() |
Team Foundation ServerでJava開発は大丈夫か? ユカイ、ツーカイ、カイハツ環境!(18) .NET開発用の構成管理ツールと思われがちだが、Eclipseプラグインを使えばJavaやPHPでも使えます。Trac Lightningとの比較も 「Java Solution」フォーラム 2010/11/24 |
![]() |
AzureのストレージをJavaで扱えるWindowsAzure4j ユカイ、ツーカイ、カイハツ環境!(14) AzureストレージサービスのデータをJavaから参照・更新・削除するプログラムや、そのための無料Eclipseプラグインの使い方を紹介 「Java Solution」フォーラム 2010/4/15 |
![]() |
EclipseでJavaとXAML/WPFをつなぐフレームワーク JavaにおけるRIAの選択肢の1つとして.NETを使う!? 開発者もデザインを要求されるRIA時代、Java開発者はどうするべきか? 答えの1つとして無料のフレームワークを紹介 「Java
Solution」フォーラム 2008/3/27 |
![]() |
.NETでもEclipseを使ってみる .NET Tools Javaの世界では絶大な人気を誇る開発環境Eclipseだが、C#用のプラグインを使えば.NETの開発も可能らしい。果たしてどの程度のものなのか、実際に試してみた 「Insider.NET」フォーラム
2004/8/7 |
![]() |
1-2 |
Index | ||||||
|
![]() |
Java Solution全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
![]() |
|
|
|
![]() |