4

私は、JMeter/ストレス テストの経験がない .net 開発者です。JMeter を使用して開発した ASP.net Web サイトを負荷テストしようとしています。JMeter を使用する理由は、多くの名声と信頼性を持つオープン ソース ツールだからです。ASP.net の代表的な機能である viewstate については、こちらのリンク
を参考にしました。ただし、私の要件は、そこに記載されているほど単純ではありません。ユーザーIDとパスワードをログインページに送信してサイトのロードテストを行い、ログインが成功した場合にのみ閲覧が許可される他のページをテストしようとしています。

これを達成するために私が取っている手順を以下に示します。

  1. [WorkBench] > [Add] > [Non-Test Elements] を選択して、Http Proxy Server を作成します。
  2. Firefox のネットワーク設定を Http Proxy Server で定義されたポートに変更します。
  3. Thread Group[テスト計画] > [追加] > [スレッド (ユーザー)] > [スレッド グループ] を選択して を作成します。
  4. HTTP Request Defaults[スレッド グループ] > [追加] > [構成要素] > [HTTP 要求の既定値] を選択して作成します。
  5. (a) リモート サーバーの IP を入力Server Name or IP:
    (b) ログイン ページへのパスを次のように入力/MyWebApplication/login.aspx
  6. User Defined Variables[スレッド グループ] > [追加] > [構成要素] > [ユーザー定義変数] を選択して作成します。
  7. 私の login.aspx ページは非常にシンプルです。2 つのテキスト ボックスからユーザー ID とパスワードを取得し、データベースでそれらを照合し、成功した場合は LoginSuccess.aspx ページにリダイレクトします。私のlogin.aspxには、ログインIDとパスワードを受け取るための2つと、データベースでそれらをチェックするための
    3つのサーバーコントロールしかありません。 それらの id は、それぞれ、です。asp:TextBoxasp:Button
    txtLogintxtPasswordbtnLogin

    ユーザー定義変数 (手順 6 で作成) に、admin と 123admin を追加しました。これらは、db の実際のログインであり、login.aspx ページでチェックされ、成功すると LoginSuccess.aspx ページにリダイレクトされます。

    ユーザー定義変数:

    Name:          Value    Description
    login          admin    
    password       123admin 
    
  8. [スレッド グループ] > [追加] > [ポスト プロセッサ] > [正規表現エクストラクタ] を選択して、2 つの正規表現エクストラクタを追加しています。

  9. 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
    
  10. 同様に、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
    
  11. ステップ5で、次のデータを追加しました

    Send Parameters With the Request:
        Name:             - Value
        txtLogin          - $(login)
        txtPassword       - $(password)
        __VIEWSTATE       - $(viewState)
        __EVENTVALIDATION - $(eventValidation)
    
  12. ここで、[スレッド グループ] > [追加] > [構成要素] > [HTTP Cookie Manager] を選択して、HTTP Cookie Manager を追加しました。

  13. ここで、[スレッド グループ] > [追加] > [ロジック コントローラー] > [レコーディング コントローラー] を選択して、レコーディング コントローラーを追加しました。

  14. 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:

4

4 に答える 4

1
  1. 少なくともスクリプトのより良いスキーマを追加してください。
  2. さて、上記のステップ11では、、、 ...がありtxtLogin = $(login)ますtxtPassword = $(password)
    変数値を$(VAR_NAME)正しくないものとして参照する場合は、${VAR_NAME}を使用する必要があります。
    質問のつづりが間違っているだけなのか、それともスクリプトに同じものがあるのか​​を確認できますか?
  3. たとえば、 Debug Sampler / Debug PostProcessor(両方のRegEx Extractorが適用された後に挿入)を使用して、両方の値viewstateeventValidationリクエストから抽出され、regexクエリが正しく機能することを確認します。
  4. ビュー結果ツリーの結果で2番目のHTTPリクエストサンプラーのリクエストパネルを調べて、正しい値を持つすべての定義済みパラメーター(、、、)がtxtLoginリクエストと一緒に送信されることを確認します。txtPassword__VIEWSTATE__EVENTVALIDATION
于 2013-03-15T15:41:56.710 に答える
0

私はCSS/JQuery Extractorを使用しましたが、うまくいき ました。ビュー ステート {viewState} 変数の正規表現エクストラクタが渡され、ビュー ステートの破損エラー メッセージが表示されました。

CSS/JQuery エクストラクタで設定するパラメータは次のとおりです。

参照名: viewState

CSS/JQuery 式: input[id=__VIEWSTATE]

属性: 値

私が従った手順は次のとおりです:-

  1. まず、ログインプロセスの記録を行います。
  2. 必要なページをスレッド グループにドラッグします。
  3. ログイン ページの get リクエストで、ビュー ステートとイベント検証用にそれぞれ 2 つの CSS/JQuery エクストラクタを追加します。
  4. ログイン ページのポスト リクエストで、次のように body パラメータを追加し、バッチを実行します。

    名前: - 値

    txtLogin - ${login}

    txtパスワード - ${パスワード}

    __VIEWSTATE - ${viewState}

    __EVENTVALIDATION - ${eventValidation}

于 2016-06-19T07:56:14.520 に答える
-2

HTTP 500 です。サーバーエラーコードなので、失敗しているのはあなたのスクリプトではありません.何をしなければならないかは.aspxのタグで、私が数ヶ月前に直面したセキュリティを無効にします.

于 2014-04-17T22:12:50.557 に答える