負荷テストツール
0.改訂履歴
- 2003.08.05 新規作成
1.はじめに
このドキュメントでは,負荷テストツールについて考えてみる. “負荷テストの定義”とツール導入についての簡単な効果などは,ドキュメント「負荷テスト」にまとめてあるので参照する.
2.負荷テスト,ツールとサービス
- 負荷テストで汎用ツールを利用する場合,2つの方法がある.
- 負荷テストツールを購入する.
- 負荷テストサービスを利用する.
- そこで,その2つのサービスについて考えてみた.
2.1.負荷テストツール価格
- 負荷テストツールは,また「1本いくら」というようなズバリな価格を提示しにくい製品群である.
- キーマンズネットで2002.12.09の特集をみると,次のような値段になっている.
製品名 | 価格 | メーカ名 |
---|---|---|
Load Runner |
700万〜
|
マーキュリーインタラクティブジャパン |
Rational Robot |
225万〜
|
日本ラショナルソフトウェア株式会社 (IBM) |
e-Load |
318万〜
|
エンピレックス株式会社 |
WebLoad |
192万〜
|
テクマトリクス株式会社 |
Assam WebBench |
150万〜
|
日立ソフトエンジニアリング株式会社 |
Microsoft Web Application Stress Tool |
0万
|
Microsoft |
Jakarta JMeter |
0万
|
Apache Jakarta Project |
※同時100ユーザの価格
- この費用はソフトウェアのみで,ハードウェアは別途用意しなければならない.
- また,この手のソフトウェアは,初年度より10〜30%程度の年間保守料金が必要になる事も考慮しなければならない.
- 多くのソフトウェアが同時ユーザ数によってチャージされる価格体系になっているので,大規模サイトのテストを行う場合は,非常に高額な値段となる.
- Load Runnerでは,価格を押さえるためにユーザ数を「1日だけ使えるプリペイド式」で提供するようなライセンス方式を採用したり何かと苦心しているようである.
2.2.負荷テストサービス
- 上記で出たような負荷試験ツールを用いて,負荷テストの実施を行うサービスというものがある.
- その多くは,案件毎に要求が異なるので,「別途ご相談」となっているものが多いが,いくつか価格を提示しているものがあったので参考にする.
サービス名 | 価格 | 提供会社 | 備考 |
---|---|---|---|
WebSite負荷テストサービス | 98万〜 | 東芝情報システム | オンサイトで仮想100ユーザを上限として1シナリオの負荷テストを実施. |
e-TESTソリューションサービス | 150万〜 | 図研ネットウエイブ株式会社 | 同時100ユーザの場合の値段.e-Testの1ヶ月の利用権. |
- どちらのサービスも,共通しているのは次の通り.
- e-Loadを用いている.
- 機材は使う側で用意しなければならない事.
- 規模が変わると別料金.
- シナリオ数や回数が増えると別料金.
- 一番高額な製品Load Runnerを購入すると700万円と言う事で,年間単純に5〜7回テストを実行する事で元が取れる.
- 負荷テストでは,一般に準備8割,実行2割とされている.
- テスト実施者,今回の場合はサービス提供者の場合は,ツールの利用方法収得の時間がないのでスタートは速いと思われる.
- 費用を考えると,配分は次のように推測される.
- ソフトウェアの期間限定使用ライセンスが40〜70万.
- 専門エンジニアの派遣 2人日
- しかし,一番時間が掛かるのは「対象システムの理解」だが,「実質1人日程度で理解できる程度のもの」に限られると考えられる.
3.負荷テストツールの機能
- 負荷テストツールは,以下のような機能を持っている.
機能 | 説明 |
---|---|
テストデータの作成 | ユーザが実行する操作を記録する,実際に発生するトランザクションデータのネットワーク上のデータのキャプチャ等でユーザの処理を再現するデータを作成する.
ユニークになるトランザクションを発生するために,指定された範囲でパラメータを変動させる機能等を持っているものが多い. |
仮想ユーザによる 負荷テストの実施 |
負荷をかける指令を出すコンピュータと,実際の負荷を再現するエージェントコンピュータに分かれる構成のものが多い.
負荷を再現するコンピュータでは,処理にも夜が1台あたり50〜100クライアント分程度を再現できる事が多い. |
実行時ステータスの取得 | 負荷をかけている時に,レスポンスタイムやサーバの稼働について,後のレポートに繋がる情報を収集する.
収集機能によっては,3階層システムでレスポンスが悪い場合,そのどの層がボトルネックであるかなどが取得できる. |
分析・レポート機能 | 応答時間やユーザ数の最大・平均・最小・標準偏差などの統計データ,各項目の相関グラフ等を視覚的に判るように表現する.
また汎用的なフォーマットで結果のレポートを作成し,前回との比較,他のシステムとの比較検討の材料とする事が出来る. |
- 製品によって機能のさはあれど,この表のようなものになる.
- テストデータの作成フェーズでは,ユーザが実際の操作を行い,その情報を記録して再現する方式を用いているものが多い.
- ただし,この記録しているものがユーザの操作そのものだったり,Webに特化したツールではその先のHTTPリクエストを記録している場合などで違いがある.
- 記録したユーザ操作データはVisualBasicのエディタのようなGUIツールで編集できる.
4.無料ソフトと有償版ソフトの違い
- とても高額な有償ソフトがあるなかで,無料を歌っているプロダクトも存在している.
- それらの中には有償版にも匹敵する,スクリプト作成機能などがあるが,決定的に足りない
- テストができない場合が多い
- 動的URL
- JavaScriptの利用
- 高負荷試験には不向き
- シーケンシャル実行
- 複数の負荷サーバを集中コントロールできない.
- 分析機能が貧弱
- レポート機能
- モニタリング機能
- 機能や性能に制限がある.
- エラーの原因究明が困難
- 実行中のエラーの把握
- ボトルネックの検出
- アプリケーションサーバか?
- データベース・サーバか?
- テストができない場合が多い
- フリーウェアを使うと言う事では,高度なノウハウが必要.
- サーバステータスを取得したりそれをレポートするような,他のツールとの連動ができる機能を有していないとがないと実質的な効力を発揮できない.
5.人に依存しないために
- 普通,ノウハウは人に依存してしまい,その経験を共有する事は困難である.
- 市販製品を使うと言う事は,出来る事を一定化させるという意味でメリットがある.
- また,ベンダーの製品サポートや教育コースの用意などが期待でき,技術継承も比較的楽観視できるおと考えられる.