2009-10-04 2 views
30

JMeter 명령 줄을 사용하여 웹 사이트 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> 

그래서 오류가 발생합니다.

현재 모든 오류는 파일로 전송됩니다. 그 파일을 확인하면 그것이 404라고 말하고 있습니다. 어 .. 오케이. 어쨌든 내가 을 볼 수 있습니까? 요청한 JMeter가 시도한 것은 무엇입니까? 누군가가, 내가이 작업을 수행 할 수 있습니다 알고 그래, 나는 404를 발견했습니다 '웹 서버 로그 파일을 확인합니다'라고하기 전에

여기, 지금 ...

<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> 

내 설정 파일의 조각입니다. . 그러나 나는 그들이 액세스 할 수없는 경우에 볼 수 있기를 바라고 있습니다. 특히 다른 서버에 있거나 액세스 할 수없는 경우에 특히 그렇습니다. 도와주세요!

답변

53

View Results Tree 구성 요소는 모든 샘플 응답의 트리를 보여 주므로 모든 샘플에 대한 요청 및 응답을 볼 수 있습니다. 파일에 응답 저장을 사용하여 전체 응답을 파일에 저장할 수도 있습니다.

+5

올바른 것이지만 명령 줄을 통해이 작업을 수행하고 있습니다. 따라서 GUI에 액세스 할 수 없습니다. 부 t 내 질문에 (홍당무)를 지정하지 않았습니다. 또한, 나는 커맨드 라인을 통해 그것을하는 방법을 알아낼 수 없었다. 그래서 어쨌든 당신이 제안한 일을 끝냈다. :) –

+2

커맨드 라인을 사용한다면, 출력 파일에 데이터를 보내도록 테스트를 구성 할 수있다. jtl) 다음이 도구를 사용하여 해당 파일을 처리하십시오. http://jmeter-plugins.org/wiki/JMeterPluginsCMD/ PNG 또는 CSV로 내보내십시오. – hveiras

+0

질문을 올바르게 읽은 경우 응답이 아닌 기록 된 요청을 찾고 있습니까? – arcseldon

20

샘플러가 실패 할 때 에만이 스레드가 해결책을 찾았 기 때문에 받아 들인 해결책은 나에게 좋지 않습니다. 나는 수십만 개의 샘플을 포함하는 매우 높은로드에서 가끔씩 샘플 오류가 발생하므로 트리 수신기는 완전히 실용적이지 않습니다. (크기가 몇 기가 바이트에이를 것입니다.) 그래서 여기에 대해 생각해보십시오. 영업의 시나리오뿐만 아니라) :

추가는 BeanShell Assertion (다른 모든 주장 쫓을)과 그 안에 아래 코드를 넣어해야합니다

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를 로그에 기록하기 파일은 내 경우에는 괜찮습니다. 응답이 실제로 작다는 것을 알았지 만 큰 응답의 경우보다 지능적인 처리가 수행 될 수 있습니다.

+0

좋은 아이디어 !! woot! –

+0

"DEBUG"라는 UDV를 사용하여 로그를 제어하는 ​​기능을 추가 했으므로 일반 작업 부하에 대한 어설 션을 남기고 필요할 때만 사용하는 것이 더 쉽습니다. – haridsv

+0

@ haridv 좋은 결정! 하지만 실패한 응답을 유발 한 requestData를 저장할 수 있습니까? – ShurupuS

4

오류가 발생하는 경우에만 파일에 저장할 수있는 '파일에 응답 저장'리스너가 있습니다.

관련 문제