JMeterは - どのように失敗した応答のための完全な要求をログに記録するには?
-
19-09-2019 - |
質問
私は、当社のウェブサイトのAPIをストレステストするためにJMeterのコマンドラインを使用しています。さて、ここで私が戻って取得していたサンプルの結果があります:
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>
だから私はエラーを取得しています。
現在、すべてのエラーは、ファイルしようとしています。私はそのファイルをチェックインすると、OK ... 404 Erのだと言っています。私が見ることができるとにかくあります。の正確の要求が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>
特に場合は...誰かが「Webサーバのログファイルを確認してください」と言う前に、さて、私はこれを行うことができます知っていて、うん、私は404を発見しました..しかし、私はそれがそれらにアクセスしなくても可能ですかどうかを確認するために願っています彼らは別のサーバー上にある、および/または私はそれらへのアクセスを取得することはできません。 助けてください!
他のヒント
私はこのスレッドはサンプラーが失敗したので、受け入れられた解決策は、私にとっては良くないときののみの応答を記録するためのソリューションを探して見つけました。私はのために良いことがありますどの((それはサイズが数ギガバイトに達するだろう)ので、木のリスナーが私のために完全に非現実的である、サンプルの数十万人を含む、非常に高い負荷で時折サンプルの障害を持っているので、ここで私が思い付いたものです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のログファイルに記録されて得るが、大規模な応答のために、より高度な処理を行うことができます。
全体の応答を引き起こしますエラーが発生した場合にのみ、ファイルに保存することができ、リスナー、「ファイルへの回答を保存」があります。