web-dev-qa-db-ja.com

JMeter-失敗した応答の完全なリクエストを記録する方法は?

jMeterコマンドラインを使用して、WebサイトAPIのストレステストを行っています。さて、ここに私が戻ってきているサンプル結果があります:

Creating summariser <summary>
Created the tree successfully using street_advisor.jmx
Starting the test @ Sat Oct 03 15:22:59 PDT 2009 (1254608579848)
Waiting for possible shutdown message on port 4445
summary +     1 in   0.0s =   37.0/s Avg:    27 Min:    27 Max:    27 Err:     1 (100.00%)
<snip a few more lines>
<then i break it>

だから私はエラーが発生しています。

現在、すべてのエラーはファイルに送信されます。私がそのファイルをチェックすると、それは404だと言っています。Er.. OK。とにかくexactly JMeterがリクエストした内容を確認できますか?

ここに私の設定ファイルのスニペットがあります...

<ResultCollector guiclass="SimpleDataWriter" testclass="ResultCollector" testname="Error Writer" enabled="true">
          <boolProp name="ResultCollector.error_logging">true</boolProp>
          <objProp>
            <name>saveConfig</name>
            <value class="SampleSaveConfiguration">
              <time>true</time>
              <latency>true</latency>
              <timestamp>false</timestamp>
              <success>true</success>
              <label>true</label>
              <code>true</code>
              <message>true</message>
              <threadName>false</threadName>
              <dataType>true</dataType>
              <encoding>false</encoding>
              <assertions>true</assertions>
              <subresults>true</subresults>
              <responseData>false</responseData>
              <samplerData>false</samplerData>
              <xml>true</xml>
              <fieldNames>false</fieldNames>
              <responseHeaders>true</responseHeaders>
              <requestHeaders>true</requestHeaders>
              <responseDataOnError>false</responseDataOnError>
              <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
              <assertionsResultsToSave>0</assertionsResultsToSave>
              <bytes>true</bytes>
            </value>
          </objProp>
          <stringProp name="filename">./error.jtl</stringProp>
        </ResultCollector>

今、誰かが「ウェブサーバーのログファイルをチェックしてください」と言う前に、私はこれを行うことができることを知っています、そして、いや、404を見つけました。別のサーバーおよび/またはそれらにアクセスできません。助けてください!

41
Pure.Krome

結果ツリーの表示コンポーネントはすべてのサンプル応答のツリーを表示し、任意のサンプルの要求と応答の両方を表示できます。

ロードテスト(常にNON GUIモード)の場合、[ファイル名]フィールドに入力し、エラーの応答のみを保存するように選択します。

View Results Tree in error

上記のように、[構成]をクリックして、CSV以外のすべてのフィールドを選択しました。

応答をファイルに保存する を使用して、応答全体をファイルに保存することもできます。

Save Responses to a file

66
rodrigoap

このスレッドは、サンプラーが失敗したときに応答を記録するソリューションを検索していることを発見しましたonly数十万のサンプルを含む非常に高い負荷でサンプルが時々失敗するため、ツリーリスナーは私にとって完全に非実用的です(サイズが数ギガバイトに達する)。 OPのシナリオも同様):

[JSR223 Assertion][1](他のすべてのアサーションの後に来るはずです)を追加し、その中に以下のコードを配置します。

if (Boolean.valueOf(vars.get("DEBUG"))) {
  for (a: SampleResult.getAssertionResults()) {
    if (a.isError() || a.isFailure()) {
      log.error(Thread.currentThread().getName()+": "+SampleLabel+": Assertion failed for response: " + new String((byte[]) ResponseData));
    }
  }
}

これにより、応答全体がjmeterログファイルに記録されます。これは、応答が本当に小さいことを知っているため、私の場合は問題ありませんが、応答が大きい場合は、よりインテリジェントな処理を行うことができます。

21
haridsv

「ファイルへの応答を保存する」リスナーがあり、エラーが発生した場合にのみファイルに保存できます。

6
gWay