JMeter:采样器结果中的 "Response code: 500, Response message: Internal Server Error"

JMeter: "Response code: 500, Response message: Internal Server Error" in Sampler Result

我正在动态提取我的 asp.net 网站的所有动态值,但是,我可以在采样器结果中看到 "Response code: 500, Response message: Internal Server Error"。

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

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>

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

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

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

您还可以在 JMeter 的 ASP.NET 应用程序中查看 ASP.NET Login Testing with JMeter 绕过登录验证的端到端步骤指南。