JMeter:采样器结果中的“响应代码:500,响应消息:内部服务器错误”

时间:2015-09-29 14:00:16

标签: performance testing server jmeter response

我正在动态提取我的asp.net网站的所有动态值,但是,我可以在采样器结果中看到“响应代码:500,响应消息:内部服务器错误”。

以下是树中查看结果的请求:

POST http://MyURL/MyPortal/login.aspx

POST data:
__VIEWSTATE=%2FwEPDwUKMTI3MjAzNjAzNGRkjr4joFF5LWOOmI2LfqKYaLCnJoWEEuersumW%2Fyg8oSE%3D&__EVENTVALIDATION=%2FwEdAAe%2FZNCyf7CfdyOuzLZ7mDoL9Tt6KoVd96dN6zOjIKoOlInkg%2Fut7Je4AtoEsfzZAOLszNp1xh91HdjgSkSmA8AOAmWyFUPYYwjYUgZAnHgtx2Vqz9dZFL0pGDKPfgeuicZtnfqjBya34OcE2Eru6nT4MwnrIcmty4bwVAU6VEb6qrGc%2BEe7Y58My78ZHzJqq0k%3D&txtUserID=1111111&txtPWD=ASDF&BtnSubmit=Submit&hdnE=5&hdnN=323&hdnD=173

Cookie Data:
ASP.NET_SessionId=e0ibh0ihceof54ulvhkx1

Request Headers:
Connection: keep-alive
Referer: http://MyURL/MyPortal/login.aspx
Accept-Language: en-US,en;q=0.5
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Content-Length: 386

并且,响应代码是:

<!DOCTYPE html>
<html>
    <head>
        <title>Runtime Error</title>
        <meta name="viewport" content="width=device-width" />
        <style>
         body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} 
         p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
         b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
         H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
         H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
         pre {font-family:"Consolas","Lucida Console",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt}
         .marker {font-weight: bold; color: black;text-decoration: none;}
         .version {color: gray;}
         .error {margin-bottom: 10px;}
         .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
         @media screen and (max-width: 639px) {
          pre { width: 440px; overflow: auto; white-space: pre-wrap; word-wrap: break-word; }
         }
         @media screen and (max-width: 479px) {
          pre { width: 280px; }
         }
        </style>
    </head>

    <body bgcolor="white">

            <span><H1>Server Error in '/MyPortal' Application.<hr width=100% size=1 color=silver></H1>

            <h2> <i>Runtime Error</i> </h2></span>

            <font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">

            <b> Description: </b>An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.
            <br><br>

            <b>Details:</b> To enable the details of this specific error message to be viewable on remote machines, please create a &lt;customErrors&gt; tag within a &quot;web.config&quot; configuration file located in the root directory of the current web application. This &lt;customErrors&gt; tag should then have its &quot;mode&quot; attribute set to &quot;Off&quot;.<br><br>

            <table width=100% bgcolor="#ffffcc">
               <tr>
                  <td>
                      <code><pre>

&lt;!-- Web.Config Configuration File --&gt;

&lt;configuration&gt;
    &lt;system.web&gt;
        &lt;customErrors mode=&quot;Off&quot;/&gt;
    &lt;/system.web&gt;
&lt;/configuration&gt;</pre></code>

                  </td>
               </tr>
            </table>

            <br>

            <b>Notes:</b> The current error page you are seeing can be replaced by a custom error page by modifying the &quot;defaultRedirect&quot; attribute of the application&#39;s &lt;customErrors&gt; configuration tag to point to a custom error page URL.<br><br>

            <table width=100% bgcolor="#ffffcc">
               <tr>
                  <td>
                      <code><pre>

&lt;!-- Web.Config Configuration File --&gt;

&lt;configuration&gt;
    &lt;system.web&gt;
        &lt;customErrors mode=&quot;RemoteOnly&quot; defaultRedirect=&quot;mycustompage.htm&quot;/&gt;
    &lt;/system.web&gt;
&lt;/configuration&gt;</pre></code>

                  </td>
               </tr>
            </table>

            <br>

    </body>
</html>

1 个答案:

答案 0 :(得分:1)

您是否已关联VIEWSTATEEVENTVALIDATION参数?如果没有 - 你不能让它们硬编码。您需要按如下方式设计测试用例:

  • GET请求登录页面(用户打开登录页面)
    • 提取&#34; VIEWSTATE&#34;,&#34; EVENTVALIDATION&#34;和任何其他动态参数到JMeter变量
  • POST请求登录页面(用户输入凭据)
    • 提供之前提取的&#34; VIEWSTATE&#34;和&#34; EVENTVALIDATION&#34;变量值,登录名,密码和任何其他参数。

根据您的技能和响应性质,您可以使用以下后处理器来提取动态值:

您还可以查看ASP.NET Login Testing with JMeter指南,了解绕过JMeter中ASP.NET应用程序中的登录质询的端到端步骤。