私は、JMeter/ストレス テストの経験がない .net 開発者です。JMeter を使用して開発した ASP.net Web サイトを負荷テストしようとしています。JMeter を使用する理由は、多くの名声と信頼性を持つオープン ソース ツールだからです。ASP.net の代表的な機能である viewstate については、こちらのリンク
を参考にしました。ただし、私の要件は、そこに記載されているほど単純ではありません。ユーザーIDとパスワードをログインページに送信してサイトのロードテストを行い、ログインが成功した場合にのみ閲覧が許可される他のページをテストしようとしています。
これを達成するために私が取っている手順を以下に示します。
- [WorkBench] > [Add] > [Non-Test Elements] を選択して、Http Proxy Server を作成します。
- Firefox のネットワーク設定を Http Proxy Server で定義されたポートに変更します。
Thread Group
[テスト計画] > [追加] > [スレッド (ユーザー)] > [スレッド グループ] を選択して を作成します。HTTP Request Defaults
[スレッド グループ] > [追加] > [構成要素] > [HTTP 要求の既定値] を選択して作成します。- (a) リモート サーバーの IP を入力
Server Name or IP:
(b) ログイン ページへのパスを次のように入力/MyWebApplication/login.aspx
User Defined Variables
[スレッド グループ] > [追加] > [構成要素] > [ユーザー定義変数] を選択して作成します。私の login.aspx ページは非常にシンプルです。2 つのテキスト ボックスからユーザー ID とパスワードを取得し、データベースでそれらを照合し、成功した場合は LoginSuccess.aspx ページにリダイレクトします。私のlogin.aspxには、ログインIDとパスワードを受け取るための2つと、データベースでそれらをチェックするための
3つのサーバーコントロールしかありません。 それらの id は、それぞれ、です。asp:TextBox
asp:Button
txtLogin
txtPassword
btnLogin
ユーザー定義変数 (手順 6 で作成) に、admin と 123admin を追加しました。これらは、db の実際のログインであり、login.aspx ページでチェックされ、成功すると LoginSuccess.aspx ページにリダイレクトされます。
ユーザー定義変数:
Name: Value Description login admin password 123admin
[スレッド グループ] > [追加] > [ポスト プロセッサ] > [正規表現エクストラクタ] を選択して、2 つの正規表現エクストラクタを追加しています。
1st Regular Expression Extractor の名前を に変更し、
View State Extractor
次のデータを追加しました。Reference Name: viewstate Regular Expression: name="__VIEWSTATE" id="__VIEWSTATE" value="(.+?)" Template:$1$ Match No.(0 for Random): 1 Default Value: ERROR
同様に、2 番目の正規表現エクストラクタの名前を に変更し、
Event Validation Extractor
次のデータを追加しました。Reference Name: eventValidation Regular Expression: name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="(.+?)" Template:$1$ Match No.(0 for Random): 1 Default Value: ERROR
ステップ5で、次のデータを追加しました
Send Parameters With the Request: Name: - Value txtLogin - $(login) txtPassword - $(password) __VIEWSTATE - $(viewState) __EVENTVALIDATION - $(eventValidation)
ここで、[スレッド グループ] > [追加] > [構成要素] > [HTTP Cookie Manager] を選択して、HTTP Cookie Manager を追加しました。
ここで、[スレッド グループ] > [追加] > [ロジック コントローラー] > [レコーディング コントローラー] を選択して、レコーディング コントローラーを追加しました。
HTTP Proxy Server を起動し、firefox を使用して完全な URL を login.aspx ページに入力し、2 つのテキスト ボックスに admin と 123admin を入力してログイン ボタンを押すと、LoginSuccess.aspx に正常にリダイレクトされました。HTTP プロキシ サーバーを停止し、Firefox ブラウザーを閉じました。
これで、テスト計画を保存し (記録された手順を含む、ここでは 2 つの手順、login.aspx 用に 1 つ、LoginSuccess.aspx 用に 1 つ)、テストを実行し、500 エラーを返す結果ツリーの表示でテスト結果を表示します。サーバー。
JMeter を正常に使用できないため、ここで欠落している成分を特定できません。ここに記載されている値のみを変更しました。ここに記述していないすべての値は、 のようなデフォルトの型ですNo of thread:
。