Поделиться через


Экспорт результатов теста из Нагрузочного тестирования Azure для использования в сторонних средствах

Из этой статьи вы узнаете, как экспортировать результаты и отчеты теста нагрузочного тестирования Azure. Результаты можно скачать с помощью портала Azure в качестве артефакта в рабочем процессе CI/CD в JMeter с помощью серверного прослушивателя, в Локусти с помощью перехватчиков событий или подключаемых модулей прослушивателя или копирования результатов из учетной записи хранения Azure. Эти результаты можно использовать для создания отчетов в сторонних средствах или для диагностики сбоев тестов. Нагрузочное тестирование Azure создает результаты теста в формате файла с разделительная запятыми (CSV-файл) и содержит сведения о каждом запросе приложения для нагрузочного теста.

Результаты теста также можно использовать для диагностики ошибок во время нагрузочного теста. Поля responseCode и responseMessage предоставляют вам дополнительную информацию о неудачных запросах. Дополнительные сведения об анализе ошибок см. в разделе "Диагностика неудачных нагрузочных тестов".

Вы можете создать панель мониторинга Apache JMeter из CSV-файла журнала, выполнив описанные здесь действия.

Вы также можете скачать панель мониторинга результатов нагрузочного тестирования Azure в виде HTML-отчета для автономного просмотра и совместной работы.

Предварительные условия

Формат файла результатов теста

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

Нагрузочное тестирование Azure использует формат журнала CSV Apache JMeter. Для получения дополнительной информации о различных полях см. глоссарий JMeter в документации Apache JMeter.

Подробные сведения о каждом запросе приложения нагрузочного теста можно найти в файле результатов теста. В следующем фрагменте кода показан пример результата теста:

timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
1676040230680,104,Homepage,200,OK,172.18.33.7-Thread Group 1-5,text,true,,1607,133,5,5,https://www.example.com/,104,0,100
1676040230681,101,Homepage,200,OK,172.18.33.7-Thread Group 1-3,text,true,,1591,133,5,5,https://www.example.com/,101,0,93
1676040230680,101,Homepage,200,OK,172.18.33.7-Thread Group 1-1,text,true,,1591,133,5,5,https://www.example.com/,98,0,94

Доступ и скачивание результатов нагрузочного теста и отчета

После завершения нагрузочного теста можно получить доступ к результатам нагрузочного теста и отчету HTML через портал Azure или как артефакт в рабочем процессе CI/CD.

Внимание

Для нагрузочных тестов с более чем 45 экземплярами движка или более 3-часовой продолжительностью теста файл результатов недоступен для загрузки. Вы можете настроить JMeter Backend Listener для экспорта результатов в хранилище данных на ваш выбор или скопировать результаты из контейнера учетной записи хранения. Для тестов с образцами, превышающими 30, скачанный HTML-отчет будет содержать только графы для данных, агрегированных по всем образцам. Графики не будут отображать данные по выборкам. Кроме того, скачанный отчет не поддерживает графы, соответствующие метрикам на стороне сервера.

Чтобы скачать результаты теста и HTML-отчет для тестового запуска в портал Azure:

  1. В портале Azure перейдите к вашему ресурсу Azure Load Testing.

  2. На левой панели выберите "Тесты ", чтобы просмотреть список тестов, а затем выберите тест.

    Снимок экрана: список тестов для ресурса Нагрузочного тестирования Azure.

    Совет

    Чтобы ограничить количество тестов, отображаемых в списке, можно использовать поле поиска и фильтр диапазона времени.

  3. Файл результатов теста можно скачать в виде архивной папки двумя способами:

    • Выберите многоточие (...) рядом с запуском нагрузочного теста, с которым вы работаете, и выберите Скачать файл результатов.

      Снимок экрана: скачивание файла результатов для выполнения нагрузочного теста.

      Примечание.

      Выполнение нагрузочного теста должно иметь состояние "Готово", "Остановлено" или "Сбой", чтобы файл результатов был доступен для скачивания.

    • Выберите "Скачать" на панели сведений о тестовом запуске. Чтобы скачать результаты, выберите "Результаты". Чтобы скачать HTML-отчет, выберите "Отчет".

      Снимок экрана, на котором показано, как скачать результаты теста на панели

  4. Вы можете использовать любое zip-средство для извлечения папки и доступа к скачанным файлам.

    Снимок экрана: ZIP-файл результатов теста в списке загрузки.

    Папка результатов содержит отдельный CSV-файл для каждого тестового модуля и содержит сведения о запросах, выполняемых модульом тестирования во время нагрузочного теста.

    Папка отчета содержит HTML-файл, содержащий сводку тестового выполнения и графов метрик производительности для автономного просмотра и совместной работы.

Экспорт результатов теста с помощью прослушивателей

Для тестов на основе JMeter можно использовать серверный прослушиватель JMeter для экспорта результатов теста в базы данных, такие как InfluxDB, MySQL или средства мониторинга, такие как Azure Application Insights.

Вы можете использовать бэкенд-слушатели JMeter по умолчанию, бэкенд-слушатели из jmeter-plugins.org или собственный бэкенд-слушатель в виде JAR-файла архива Java.

В следующем фрагменте кода показан пример использования внутреннего прослушивателя для приложение Azure Insights в файле JMeter (JMX):

<BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true">
  <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
    <collectionProp name="Arguments.arguments">
      <elementProp name="testName" elementType="Argument">
        <stringProp name="Argument.name">testName</stringProp>
        <stringProp name="Argument.value">jmeter</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="connectionString" elementType="Argument">
        <stringProp name="Argument.name">connectionString</stringProp>
        <stringProp name="Argument.value">Enter your AppInsights connection string</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="liveMetrics" elementType="Argument">
        <stringProp name="Argument.name">liveMetrics</stringProp>
        <stringProp name="Argument.value">true</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="samplersList" elementType="Argument">
        <stringProp name="Argument.name">samplersList</stringProp>
        <stringProp name="Argument.value"></stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="useRegexForSamplerList" elementType="Argument">
        <stringProp name="Argument.name">useRegexForSamplerList</stringProp>
        <stringProp name="Argument.value">false</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="logResponseData" elementType="Argument">
        <stringProp name="Argument.name">logResponseData</stringProp>
        <stringProp name="Argument.value">OnFailure</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="logSampleData" elementType="Argument">
        <stringProp name="Argument.name">logSampleData</stringProp>
        <stringProp name="Argument.value">OnFailure</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
    </collectionProp>
  </elementProp>
  <stringProp name="classname">io.github.adrianmo.jmeter.backendlistener.azure.AzureBackendClient</stringProp>
</BackendListener>

Вы можете скачать полный пример использования серверного прослушивателя в Azure Application Insights.

Для тестов на основе Локуста можно использовать перехватчики событий или подключаемые модули прослушивателя.

Копирование тестовых артефактов из контейнера учетной записи хранения

Внимание

Копирование тестовых артефактов из контейнера учетной записи хранения включается только для нагрузочных тестов с более чем 45 экземплярами механизма или если продолжительность теста превышает три часа.

Чтобы скопировать результаты теста и файлы журналов для тестового запуска из учетной записи хранилища, в Azure-портале:

  1. Перейдите в портал Azure и откройте свой ресурс Azure Load Testing.

  2. На левой панели выберите "Тесты ", чтобы просмотреть список тестов, а затем выберите тест.

    Снимок экрана: список тестов для ресурса Нагрузочного тестирования Azure.

  3. В списке тестовых запусков выберите тестовый запуск.

    Снимок экрана: список тестовых запусков для теста в ресурсе Нагрузочного тестирования Azure.

    Совет

    Чтобы ограничить количество тестов, отображаемых в списке, можно использовать поле поиска и фильтр диапазона времени.

  4. В области сведений о тестовом запуске выберите Копировать артефакты.

    Снимок экрана, на котором показано, как скопировать артефакты теста из панели

    Примечание.

    Выполнение нагрузочного теста должно находиться в состоянии "Готово", "Остановлено" или "Сбой", чтобы файл результатов был доступен для скачивания.

  5. Скопируйте URL-адрес SAS контейнера учетной записи хранения.

    URL-адрес SAS можно использовать в Azure Storage Explorer или AzCopy, чтобы скопировать CSV-файлы с результатами и файлы журналов для тестового запуска в учетную запись хранения.

    URL-адрес SAS действителен в течение 60 минут с момента создания. Если срок действия URL-адреса истек, выберите Копировать артефакты, чтобы создать новый URL-адрес SAS.