Что такое Apache JMeter и для чего он используется?

«Что такое Apache JMeter и для чего он используется?» — вопрос из категории Инструменты тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Apache JMeter — это инструмент с открытым исходным кодом для нагрузочного (performance) и функционального тестирования. Он имитирует нагрузку от множества пользователей на сервер, сеть или объект для анализа его производительности и устойчивости.

Основные сценарии использования:

  • Нагрузочное тестирование веб-приложений и API (HTTP/HTTPS, REST, SOAP).
  • Тестирование баз данных через JDBC.
  • Тестирование FTP-серверов и почтовых протоколов (SMTP, POP3).

Ключевые компоненты тест-плана:

  1. Thread Group: Определяет количество виртуальных пользователей (потоков), время рампы и циклы выполнения.
  2. Samplers: Запросы к серверу (HTTP Request, JDBC Request).
  3. Listeners: Сбор и визуализация результатов (графики, таблицы, деревья результатов).
  4. Assertions: Проверка корректности ответов сервера (проверка кода ответа, наличия текста).
  5. Pre/Post Processors: Обработка данных до или после запроса (например, извлечение токена из ответа).

Пример простого HTTP-запроса в JMeter:

Thread Group (Number of Threads: 100, Ramp-up: 10 seconds)
└── HTTP Request
    ├── Protocol: https
    ├── Server Name: api.example.com
    ├── Method: GET
    └── Path: /v1/products

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