JMeter - как записать полный запрос на неудачный ответ? - PullRequest
41 голосов
/ 04 октября 2009

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

Ответы [ 3 ]

65 голосов
/ 06 октября 2009

Компонент Просмотр дерева результатов показывает дерево всех ответов на выборки, позволяя просматривать как запрос, так и ответ для любой выборки.

При нагрузочном тестировании ( Всегда в режиме NON GUI ), заполните поле «Имя файла» и выберите, чтобы сохранять только Ответы при ошибке:

View Results Tree in error

Как вы можете видеть выше, мы нажали на Configure, чтобы выбрать все поля, кроме CSV.

Вы также можете сохранить весь ответ в файл, используя Сохранить ответы в файл :

Save Responses to a file

21 голосов
/ 18 декабря 2012

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

Добавьте [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, что хорошо в моем случае, так как я знаю, что ответы действительно малы, но для больших ответов может быть выполнена более интеллектуальная обработка.

6 голосов
/ 28 августа 2015

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...