マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

負荷テストをスムーズに計画・実行できるようにコンテンツを作成してみました。

負荷テストとは?

負荷テストの概要図

単純に、Webアプリケーションだけに対して負荷をかけることもできるが、
以下のようにネットワーク機器など含めた本番稼働構成に対する性能検証も可能。

負荷テストの概要図

この場合、単純なリクエスト-レスポンス間の時間測定だけするのではなく、
各サーバーや機器のパフォーマンス カウンタなどのパフォーマンス情報を収集し、
ボトルネックが無いか?などを調査する必要がある。

負荷テストのスクリプト作成

可変値の場所

post、url、htmlなどに含まれる値。

可変値のユースケース

スクリプトによる可変値の追跡

アプリケーションの仕組み次第では、データストアを初期化すれば、
取得した電文の再送だけで、負荷テストが可能なケースもあるが、

のような処理がある場合、

が必要になる。

このため、負荷テストでは、スクリプト作成が必要になる。

このように「可変値の追跡」が必要になる負荷テストは、HTTPを使用するWebアプリケーションでは容易であるが、
バイナリ電文を使用するリッチクライアントの場合、型情報を取り込む必要があるので、容易ではない。

(...と言うか、実質的に汎用的な負荷ツールでバイナリ電文の実行で負荷をシミュレートできないことが殆どである)。

負荷テスト・ツールの機能

負荷テスト・ツールは、以下のような機能を持っている。

電文のキャプチャとスクリプトの生成機能

HTTPプロキシのように動作するツール

専用ブラウザを持つツール

スクリプトの編集機能

可変値の追跡

ユーザ毎の入力

準備したユーザ毎の入力値を、実行時に投入する。

デバッグ方法

仮想ユーザ毎のスクリプト実行機能

エージェント機能

1つのスクリプトやシナリオを複数のマシンを使用して負荷を書ける場合、

各マシンにエージェントをインストールし、
コントローラからエージェント経由で各マシンを制御する。

シナリオの組み立てと実行機能

測定モデル

「測定モデル」は、下記のマトリックスのことで、

トランザクション種別機能名実行ユーザ比率スクリプト名
参照系機能A、機能B例:70%スクリプトA、スクリプトB
更新系機能C、機能D例:20%スクリプトC、スクリプトD
追加、削除系機能E例:10%スクリプトE

作成する。

機能抽出

に、「ボトルネック」がないかどうかチェックすることは重要である。

シナリオ作成

シナリオとして作成する。

となる。

※「仮想ユーザ数」が「測定モデルの実行ユーザ比率」に必ずしも準拠する必要はない。

レポーティング機能

アーキテクチャと負荷テスト

Webアプリケーション(+HTTP)

HTTPはHeaderからBodyまで、全てテキスト表現となっているため、以下手順に従い、
負荷テスト・ツールを用いてスクリプトを作成し負荷テスト・シナリオを作成しやすい。

リッチクライアント(+バイナリ電文)

バイナリ電文

等である。

回帰テストツール

以下のような、回帰テストツールもあるが、

負荷テストは、多重実行など、回帰テストツールでの代替が難しいため、
同様にクライアントサイドのシミュレータやスクリプトを作成して再生することが多い。

3層 C/S、2層 C/S

.NETの場合

Webアプリケーション

ASP.NET Web Forms

以下がポイントのもよう。

ASP.NET MVC

リッチクライアン

は、前述の方法を参考にする。

Azure上でのテスト

参考


Tags: :テスト


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS