JMeter - как зарегистрировать полный запрос при сбое ответа?

StackOverflow https://stackoverflow.com/questions/1515689

  •  19-09-2019
  •  | 
  •  

Вопрос

я использую командную строку 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.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>

Теперь, прежде чем кто-нибудь скажет "Проверьте файлы журнала веб-сервера", я знаю, что могу это сделать, и да, я нашел 404..но я надеюсь посмотреть, возможно ли это без доступа к ним..особенно, если они находятся на другом сервере и / или я не могу получить к ним доступ.Пожалуйста, помогите!

Это было полезно?

Решение

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

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

View Results Tree in error

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

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

Save Responses to a file

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top