2009-10-04 4 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?

вот отрывок из моего файла конфигурации ...

<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. но я надеюсь увидеть, возможно ли это без их доступа ... особенно если они находятся на другом сервере и/или я не могу получить к ним доступ. Пожалуйста, помогите!

ответ

53

View Results Tree Компонент показывает дерево всех выборочных ответов, что позволяет просматривать как запрос, так и ответ для любого образца. Вы также можете сохранить весь ответ на файл с помощью команды «Сохранить ответы» в файл.

+5

Правильно, но я делал это через командную строку .. поэтому у меня нет доступа к графическому интерфейсу. Bu tI не указал, что в моем вопросе (румянец). Кроме того, я не мог понять, как это сделать с помощью командной строки, поэтому я закончил тем, что вы предлагали в любом случае :) –

+2

Если вы используете командную строку, вы можете настроить свой тест на отправку данных в выходной файл (jtl), а затем обработать этот файл с помощью этого инструмента: http://jmeter-plugins.org/wiki/JMeterPluginsCMD/ для экспорта в PNG или CSV. – hveiras

+0

Если я правильно прочитал вопрос, искал зарегистрированный запрос не ответ ...? – arcseldon

20

Я нашел эту ветку, чтобы найти решение для регистрации ответа только, когда сэмплер не работает, поэтому принятое решение не подходит для меня. У меня случаются сбои выборок при очень высокой нагрузке, в которых участвуют сотни тысяч образцов, поэтому прослушиватель деревьев совершенно непрактичен для меня (он достигнет нескольких гигабайт), поэтому вот что я придумал (что должно быть хорошо для сценарий OP как хорошо):

Добавить 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

Я добавил возможность управлять журналом с помощью UDV под названием «DEBUG», поэтому проще оставить утверждение для регулярных рабочих нагрузок и включить его только тогда, когда это необходимо. – haridsv

+0

@haridsv Хорошее решение! Но возможно ли сохранить запросData, который вызвал неудачный ответ? – ShurupuS

4

Существует прослушиватель «Сохранить ответы на файл», который может сохраняться в файле только при возникновении ошибки.

Смежные вопросы