1

この問題の解決策を探しています:

自動 Web テストの実行中に、リクエストが失敗したことを受け取りました。ここに、私が見つけた応答があり ます (前のリクエストで)、(Hidden1) は前のリクエストの抽出ルールで見つかりました。コンテキスト パラメータ名の抽出ルールの値は 1 です。

注: 今回は静的パラメーターを使用しており、HTTP 状態は 200 です。

インターネットで検索した後、私が見つけた:http://blogs.msdn.com/b/slumley/archive/2007/04/10/how-to-debug-a-web-test.aspxここで解決策が見つかりませんでした初期化。

この質問は複雑なようです。なぜなら、2日間答えられずに保管していたからです。誰かがより多くの情報を知りたい場合は、私は24時間年中無休でオンラインです:)どうもありがとう...

4

4 に答える 4

3

あなたが経験していたのと同様の問題がありました(この質問は非常に古いと思いますが、これがこの問題のグーグルでの最初の結果であるため、解決策を投稿すると思いました)。

問題は、__EventValidation タグがブラウザーによって最後にレンダリングされるものの 1 つであり、VisualStudio 2008 の Web テストでは、応答オブジェクトが特定の長さを超えると切り捨てられることです (制限は 1.5MB だと思います)。

次の 3 つのオプションがあります。

  1. ページのサイズが 1.5 MB を超えている理由と、特にこれが公開 Web サイトである場合、それが必要かどうかを自問してください。
  2. Web テストで変数 ResponseBodyCaptureLimit を大きな値に設定します。単位はバイト単位であるため、応答オブジェクトを取得するには 9,000,000 (9MB) 程度で十分です。これは Web テストのメモリ使用量に影響を与えることに注意してください。負荷/パフォーマンス テストにこれを使用している場合は、エージェントにより多くのメモリが必要になることを意味します。
  3. OnPreRender メソッドをオーバーライドして、__EventValidation タグをページの下部からページの上部に移動します。

同様の問題に直面している人に役立つことを願っています。

〜ダン

于 2012-02-16T10:48:35.960 に答える
1

私は同様の問題に遭遇しており、まだそれらに取り組んでいます。それまでの間、次のリンクも役立つ場合があります。

http://blogs.msdn.com/b/slumley/archive/2007/04/10/how-to-debug-a-web-test.aspx

于 2012-10-04T16:29:54.127 に答える
0

解決策は、すべての EnableEventValidation 属性を true (デフォルト値) に変更することです。

しかし、私の意見での最善の解決策は、visualstudio 2010 の VSTS を使用することです。これは 2008 年の VSTS よりも優れており、実際に両者の間で大きな進化が起こりました。

于 2011-10-11T15:25:59.433 に答える
0

誰かがこの問題に直面し、Render メソッドをオーバーライドすることを選択した場合に備えて、サンプル コードを次に示します。

        var stringWriter = new System.IO.StringWriter();
        var htmlWriter = new HtmlTextWriter(stringWriter);
        base.Render(htmlWriter);

        var html = stringWriter.ToString();

        const string validationELement = "<input type=\"hidden\" name=\"__EVENTVALIDATION\"";
        const string hiddenDivName = "<div class=\"aspNetHidden\">";

        // Find event validation element.
        var startIndex = html.IndexOf(validationELement);
        if (startIndex >= 0)
        {
            var endIndex = html.IndexOf("/>", startIndex) + 2;

            // Cut event validation element.
            var input = html.Substring(startIndex, endIndex - startIndex);
            html = html.Remove(startIndex, endIndex - startIndex);

            // Paste element into hidden div.
            var hiddenDivStartIndex = html.IndexOf(hiddenDivName);
            html = html.Insert(hiddenDivStartIndex + hiddenDivName.Length, input);
        }

        writer.Write(html);
于 2013-10-10T11:04:22.750 に答える