PR

大量ユーザーからのアクセスをシミュレートするWebアプリケーション向け負荷テスト・ツールが充実してきた。自社WWWサイトがどのくらいのアクセス数まで耐えられるか,などキャパシティを把握できる。ただ,高価な製品が多い。本当に必要かどうかの見極めが重要となる。

 WWWシステムでは負荷の事前見積もりが難しい――このような状況に対応するための,Webアプリケーション向け負荷テスト・ツールが充実してきた(表1)。ツールを利用すれば,自社WWWサイトが,想定するユーザーのアクセス数に耐えられるか,十分なレスポンスが出ているか,などを検証できる。

 ただ,最低構成でも300万円前後する製品が多い。自社で同じツールを作成した場合の人件費,テストをしなかったためにサーバーがダウンした場合の損失,などを考えれば必ずしも高い値段ではないが,自社に本当に必要かどうかの見極めが重要となる。以下では,製品を導入するべきか,導入する場合はどのような基準で製品を選べばいいか,を見ていく。

複雑,厳密なテストが必要か

図1●負荷テスト・ツールを利用してWWWサイトのキャパシティを把握する
負荷テスト・ツールを利用すれば,自社のWWWサイトが想定するアクセス数に耐えられるか,どの程度のキャパシティを備えるか,などを調べることができる。フリーのテスト・ツールも存在するが,複数台の分散したマシンから同時にテストできる,実際のWWWブラウザのアクセスをシミュレートするための機能強化が進んでいる,などの点で一線を画す

写真1●基本的な処理はすべてGUI画面で操作できる
シナリオの作成,テストの実行,サーバーの負荷状況の監視,テスト結果の分析――といった一連の処理は,上記のようなGUI画面で操作できる。写真は米Mercury Interactiveの「LoadRunner」(左)と米Empirixの「e-Load」(右)

 負荷テスト・ツールは,より現実に近い形で大量ユーザーからのアクセスをシミュレートする(図1[拡大表示])。テストも簡単で,(1)WWWブラウザの操作からテストのシナリオを自動生成,(2)仮想ユーザーを配置してシナリオを実行,(3)サーバーやネットワークの負荷状況を監視,(4)テストの結果からレポートを作成,分析――といった手順で進められる。一連の操作はGUI画面から実行可能だ(写真1[拡大表示])。

 WWWサーバーに負荷を与えるという点では,フリーの負荷テスト・ツールを利用する方法もある*1。ただ,指定したURLに対してリクエストを連続して送信するという単純なものが多い。複数の分散したマシンからの同時テストや,異なる複数の処理の同時テストは,まずできない。さらに実際のWWWブラウザのアクセスをどれだけ忠実に再現できるか,という点で大きな差がある。詳しくは後述するが,仮想ユーザーの同時セッション数や回線速度などを厳密にシミュレートできないことが多い。

 中には,米Microsoftが無償で提供する「Web Application Stress Tool(WAS)」のように高度な機能を備えたツール*2もあるが,URLにセッションIDなどを埋め込んで動的にIDを変更するようなアプリケーションはテストできないなど,用途が制限される。「ただ単純にPOSTやGETを送信して画面を表示するようなWWWサイトのテストなら高価なツールはいらない」(テクマトリックス 第2技術部 技師の西田啓一氏)が,複雑な処理をテストするような場合は,より厳密に大量ユーザーからのアクセスをシミュレートできる市販のツールが不可欠と言える。

 ただ,注意したいのは,市販のツールを利用してもどこにボトルネックがあるのかは自分で探さなければならないということだ。CPUやメモリーの負荷状況からどのサーバーがネックになっているかが分かっても,具体的にAPサーバーやDBサーバーのどこが原因になっているかは,設定やロジックなどを変更,調整してテストを繰り返さないと発見できない。

必要な機能だけをチェックする

 製品を選択する際のポイントは,自社のテストに必要な機能を備えているかどうかだ。

 例えば,動的なセッションIDに対応しているか。HiddenタグやURLにセッションIDなどを埋め込んで動的にIDを変更するようなアプリケーションでは,うまくテストができないことがあるので注意したい。SSLに対応している場合でもサーバー認証しかテストできない,JavaアプレットやActiveXコントロールはテストできない,Javaアプレットには対応するがサーバーとRMI*で通信する場合はテストできない,などの制限がつく製品もある。

 実際にどのようなテストをするかを考えた上で,そのテスト方法も確認しておく必要がある。例えばユーザーの同時ログインをテストするような場合,それぞれの仮想ユーザーごとに別々のユーザーIDとパスワードを設定できるか,できる場合は自社で用意したIDとパスワードをどのようにしてシナリオに取り込めるか,などもチェックしておく。多くの製品はCSVファイルから取り込めるが,GUI画面で設定できる,スクリプトの編集が必要,など対応レベルにも差がある。

 仮想ユーザーが実際のWWWブラウザの動作をどれだけシミュレートできるかも重要だ。これらはテストの結果がどれだけ信頼できるかにも関係してくる。仮想ユーザーがWWWサーバーにアクセスする場合,(1)DNSサーバーに名前解決の問い合わせをするか,(2)キャッシュがある場合はキャッシュを使用するようにするか,(3)モデムなど細い回線をシミュレートできるか,(4)確立できる同時セッション数はどのくらいか,などを設定できるのが望ましい。例えば(4)は,通常のWWWブラウザは同時4セッションを確立するが,仮想ユーザー当たり同時1セッションしか確立できないという製品もある。

 このような機能の差は,製品の価格に影響してくることが多い。例えば日立ソフトウェアエンジニアリングの「Assam WebBench」は,テストできるプロトコルはHTTP/HTTPSのみ,JavaアプレットやActiveXコントロールはテストできない,などの機能制限はあるが,仮想ユーザーの数に関係なく150万円である。必要な機能を備えていなければ論外だが,機能が自社に十分なら,低機能な製品の方が安いことが多い。

付加価値機能や操作性も差が出る

 このほか,ユーザーによっては,(a)HTTP/HTTPS以外にテスト可能なアプリケーションの種類,(b)User-AgentなどHTTPヘッダーをカスタマイズする機能,(c)サーバーから受信したコンテンツが正しいかどうかを検証するコンテンツ・チェック機能,(d)IPアドレスを動的に変更する機能,(e)サーバーやネットワークの負荷状況を監視する機能,などにも注目したい。例えば(c)がなければ,サーバーが「ただいま混雑しています」というメッセージを返した場合,正常にアクセスできたと判断してしまう可能性がある*3。また(d)は,負荷分散装置でユーザーのIPアドレスを見てアクセスを振り分けているような場合に重要となる。複数の仮想ユーザーで同じIPアドレスを利用していると,同じWWWサーバーに振り分けられてしまうからだ*4

 操作性や拡張性も重要だ。複雑なテストをする場合はシナリオの作成言語やシナリオから呼び出し可能なプログラムも確認する。基本的にはスクリプトを書けば複雑なテストも可能という製品がほとんどだが,「スクリプトを作るのに数週間~3カ月かかる製品もある」(エンピレックス ウェブ テスト グループ セールス ディレクタの松本直樹氏)という。GUI画面の操作でどこまでテストできるかがポイントだ。

 日本語対応にも注意したい。対応していない場合でも基本的にはテストできるが,結果表示が文字化けする,シナリオを編集する際に日本語が文字化けする,などの問題が発生する。

 米Empirixや米Radview Software,日立ソフトウェアエンジニアリングのように,仮想ユーザー数を制限した試用版を公開しているベンダーもある*5。実際に使用して機能や操作性などを確認しておくのも手である。

サービスは高くつく可能性が高い

 なお,これらの製品を利用した負荷テスト・サービスもある。主に(1)遠隔地からインターネット経由で負荷テストを実施するサービスと,(2)SIベンダーが実施するサービス,の2つがsある。(1)は日本コンピュウェアの「PointForward(1万仮想ユーザーで250万円~)」*6,マーキュリー・インタラクティブ・ジャパンの「ActiveTest(100仮想ユーザーで1回180万円~)」*7などがあるほか,(2)は新日鉄情報通信システム(ENICOM)や日本アイ・ビー・エムなど多くのSIベンダーが提供している。ただし,前述したようにボトルネックの検出にはテストの繰り返しが必要となるほか,EC(電子商取引)サイトなどではカットオーバー後に機能追加やリニューアルなどをすることが多い。最初から製品を購入した方が安くなる可能性が高い。

(榊原 康=sakakiba@nikkeibp.co.jp)

製品名 e-Load 5.0 LoadRunner 6.02 WebLoad 4.5 *1 Rational Performance
Studio 2000
SilkPerformer 4 Assam WebBench V4.00
開発元 米Empirix 米Mercury Interactive 米RadView Software 米Rational Software 米Segue Software 日立ソフトウェアエンジニアリング
販売元(URL) エンピレックス(http://www.
empirix.
com/japan/
)
マーキュリー・インタラクティブ・ジャパン
(http://www.
mercury.co.jp/
)
シーティシー・エスピー
(http://www.ctc-
g.co.jp/~ctcsp/
),
テクマトリックス
(http://www.
techmatrix.co.jp/
)
日本ラショナルソフトウェア
(http://www.
rational.co.jp/
)
東陽テクニカ(http://www.
toyo.co.jp/
)
日立ソフトウェアエンジニアリング
(http://e-
biz.hitachi-
sk.co.jp/
)
日本語の表示 不可(2001年4月末に対応予定) 可*2 不可
価格(最低構成の場合) 仮想100ユーザーで405万円~*3 仮想20ユーザーで398万円~*4 仮想100ユーザーで150万円~ 仮想50ユーザーで268万7500円~ 仮想100ユーザーで367万2000円~ 仮想ユーザー数に関係なく150万円
HTTP/HTTPS以外にテスト可能なアプリケーション(プロトコル) なし LDAP,FTP,POP3,iモード,WAP,Java,各種DB,,ERPなど FTP,SMTP,POP3など なし(オプションで各種DB,ERPなどにも対応) FTP,SMTP,POP3,WAP,Java/RMI,EJB,各種DBなど なし
メモリー消費量/1仮想ユーザー 約1Mバイト 約500Kバイト 約300Kバイト 1M~3Mバイト 約1Mバイト 約1.2Mバイト
SSL(サーバー/クライアント認証) 対応/対応 対応/対応 対応/対応 対応/未対応 対応/対応 対応/未対応
動的なセッションID(Hidden/URL/Cookie) 対応/対応/対応 対応/対応/対応 対応/対応/対応 対応/対応/対応 対応/対応/対応 未対応/未対応/対応
Javaアプレット/ActiveXのテスト 可/一部可 可/可 可/可 可(RMIは不可)/可 可/可 不可/不可
IPアドレスの動的変更 あり あり あり あり あり なし
回転速度の調整 あり あり あり あり あり なし
キャッシュの有無の設定 あり あり あり あり あり なし
DNS参照の有無の設定 なし あり なし あり あり なし
コンテンツ・チェック機能 あり あり あり あり あり なし
HTTPヘッダーの調整 あり あり あり あり あり あり
サーバーの監視機能 あり オプション
(35万円)
あり あり オプション(282万円) なし
ネットワーク監視機能 あり オプション
(70万円)
なし あり なし なし
結果の外部出力形式 Access,SQL Server,Excel CSV,Excel,HTML,Word,GIF Excel,HTML,タブ区切りテキスト CSV HTML,ODBC,テキスト CSV
表1●国内で販売されている主なWebアプリケーション向けの負荷テスト・ツール
(Windows 環境で動作するもの)

*1価格ならびに製品の機能などは代理店のテクマトリックスによる回答
*2ただし,画面,ヘルプ・ファイルは英語(2001年8月に対応予定)
*3初年度のメンテナンス費用を含む
*4サーバーやネットワークの監視機能を含めた価格