Вопросы на собеседовании по JMeter

Вопросы на собеседовании по JMeter

Подготовьтесь к собеседованию по JMeter с помощью данного списка вопросов, которые подойдут как новичкам, так и профессионалам.

Вопрос 1. Что такое тестирование производительности?

Тестирование производительности — это вид нефункционального тестирования, при котором оценивается работа приложения под ожидаемой или повышенной нагрузкой. Оно проводится до развертывания приложения в продакшене, чтобы убедиться, что приложение не выйдет из строя и будет реагировать в установленные временные рамки при реальной нагрузке.

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Вопрос 2. Какие существуют виды тестирования производительности?

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

Вопрос 3. Какие этапы включает тестирование производительности?

Этапы тестирования производительности включают:

  1. Сбор и анализ требований к тестированию производительности — сбор данных о приложении от клиента и заинтересованных сторон.
  2. Выбор инструмента тестирования — выбор подходящих инструментов для выполнения тестов.
  3. Планирование тестирования — планирование процесса, инфраструктуры, настройки среды и сценариев тестирования.
  4. Создание тестовых сценариев — написание тестовых сценариев с использованием выбранного инструмента.
  5. Запуск тестов — выполнение тестов в соответствии с планом.
  6. Анализ результатов — сбор результатов тестирования, определение характеристик производительности и поиск узких мест.

Вопрос 4. Что такое JMeter?

JMeter — это инструмент с открытым исходным кодом для тестирования производительности, разработанный на Java. Он используется для нагрузочного тестирования веб-приложений, веб-сервисов (SOAP, REST), баз данных, FTP-серверов, LDAP и других систем. JMeter предоставляет удобный графический интерфейс для создания тестов, поддерживает различные протоколы (HTTP, JDBC, JMS и другие) и позволяет моделировать сценарии с виртуальными пользователями, проверяя время отклика, пропускную способность и устойчивость системы под нагрузкой.

Вопрос 5. Почему стоит выбрать JMeter для тестирования производительности?

Преимущества JMeter:

  1. Бесплатное использование без затрат на лицензии.
  2. Открытый исходный код, что позволяет настроить его под свои нужды.
  3. Большое количество онлайн-ресурсов и обучающих материалов.
  4. Поддержка тестирования различных типов приложений: веб-сайты, веб-сервисы, FTP, базы данных и т.д.
  5. Простота изучения и использования.

Вопрос 6. Как работает JMeter?

JMeter симулирует нагрузку, создавая виртуальных пользователей, каждый из которых работает в отдельном потоке (threads) и отправляет запросы к серверу. Эти потоки могут выполняться параллельно, моделируя одновременную активность нескольких пользователей. Вы можете настроить количество потоков, интервалы между запросами и сценарии взаимодействия с сервером.

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

Вопрос 7. Может ли JMeter симулировать работу реального браузера?

Нет, JMeter не симулирует реальный браузер и не отображает HTML-ответы, как обычный браузер.

Вопрос 8. Какие основные функции есть у JMeter?

Основные функции JMeter:

  1. Полностью написан на Java, что обеспечивает портативность, расширяемость и надежность.
  2. Функция записи и воспроизведения для быстрого создания тестовых сценариев.
  3. Различные слушатели (Listeners) для анализа результатов в табличном и графическом виде.
  4. Поддержка тестирования различных протоколов: HTTP, HTTPS, FTP, LDAP, TCP и др.

Вопрос 9. Как записывать сценарии тестов в JMeter?

В JMeter есть инструмент HTTP(S) Test Script Recorder, который позволяет записывать действия пользователя в браузере и автоматически генерировать соответствующие HTTP-запросы. Это полезно для создания нагрузочных сценариев, когда необходимо смоделировать реальные действия пользователя, такие как навигация по веб-страницам, отправка форм, взаимодействие с динамическим контентом и т. д.

Чтобы использовать этот инструмент, нужно настроить JMeter как прокси-сервер, через который будет проходить весь трафик браузера. В процессе работы JMeter будет записывать все HTTP(S) запросы, отправляемые браузером, и добавлять их в план тестирования. Это позволяет легко создать сценарий, который воспроизводит реальные действия пользователя на веб-сайте, без необходимости вручную вводить все запросы.

Вопрос 10. Нужно ли знать программирование для создания сценариев в JMeter?

Сценарии тестирования можно создавать с помощью записи действий или через интерфейс JMeter. Далее выполняются параметризация тестов, корреляция и настройка параметров. Однако для сложных случаев может понадобиться программирование, например, на языке Beanshell.

Вопрос 11. Если приложение разработано на платформе .Net, можно ли его тестировать с помощью JMeter?

Да, JMeter поддерживает тестирование веб-приложений, разработанных на любых языках и платформах.

Вопрос 12. Какие приложения можно тестировать в JMeter?

JMeter позволяет тестировать:

  • Веб-сайты
  • Веб-сервисы (REST и SOAP)
  • Базы данных (JDBC)
  • Скрипты командной строки
  • FTP
  • LDAP
  • TCP
  • SMTP, POP3, IMAP

Вопрос 13. Что такое параметризация в JMeter?

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

Вопрос 14. Что такое корреляция?

Корреляция — это извлечение динамических данных из ответа одного запроса и передача их в качестве параметров для последующих запросов. Например, можно извлечь идентификатор сессии и использовать его в следующих запросах.

Вопрос 15. Что такое план тестирования?

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

Вопрос 16. Что такое Workbench?

Workbench в JMeter — это временная область для хранения тестовых элементов. Элементы, помещенные в Workbench, не сохраняются в файле плана тестирования.

Вопрос 17. Что такое Thread Group в JMeter?

Thread Group — это элемент плана тестирования, который представляет собой группу виртуальных пользователей, выполняющих набор операций.

Вопрос 18. Что такое Test Fragment в JMeter?

Test Fragment — это специальный элемент, который позволяет организовать повторно используемый код в плане тестирования. Он действует как контейнер для других элементов (например, сэмплеров, утверждений или таймеров), но сам по себе не выполняется, если не связан с другими элементами, такими как Module Controller или Include Controller.

Вопрос 19. Что такое Ramp-up Period?

Ramp-up Period — это период времени, за который пользователи постепенно добавляются в тест. Это помогает изучить влияние нагрузки на производительность приложения.

Вопрос 20. Что такое сэмплеры (Samplers) в JMeter

Сэмплеры в JMeter используются для отправки различных запросов к серверу, например HTTP Request, JDBC Request, SOAP-XML Request, TCP Sampler и другие. Когда вы создаете тест в JMeter, вам нужно указать, какие именно запросы должны быть выполнены. Сэмплеры позволяют это сделать, и каждый тип запроса имеет свой собственный сэмплер. Например, HTTP Request используется для отправки запросов к веб-серверу через HTTP или HTTPS, JDBC Request — для взаимодействия с базами данных через JDBC, а SOAP/XML-RPC Request — для работы с веб-сервисами, использующими протокол SOAP.

Вопрос 21. Что такое слушатели (Listeners) в JMeter? Назовите некоторые из наиболее часто используемых слушателей.

Слушатели используются для просмотра и сохранения результатов тестирования, а также помогают в табличном и графическом анализе результатов тестов. Некоторые из наиболее часто используемых слушателей: Aggregate Report, Aggregate Graph, Graph Results, View Results Tree и другие.

Вопрос 22. Что такое JTL-файл в JMeter?

Результаты тестов в JMeter сохраняются в виде файлов с расширением JTL. JTL — это аббревиатура от JMeter Test Logs (журналы тестов JMeter).

Вопрос 23. Какие существуют таймеры в JMeter?

Таймеры в JMeter используются для приостановки выполнения теста на заданное время, что помогает имитировать поведение реального пользователя. В реальной жизни пользователи не отправляют запросы подряд без пауз, поэтому таймеры позволяют создать более естественные сценарии, где между запросами есть задержки. Это важно для моделирования “время раздумий” — пауз между действиями пользователя.

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

  • Constant Timer
  • Gaussian Random Timer
  • Uniform Random Timer
  • Constant Throughput Timer
  • Synchronizing Timer
  • Beanshell Timer
  • BSF Timer и другие.

Вопрос 24. В чем разница между Gaussian Random Timer и Poisson Random Timer?

Оба таймера используются для приостановки выполнения теста на случайное время, близкое к определенному значению. Разница заключается в том, что Gaussian Random Timer генерирует задержки, ориентированные на нормальное распределение вокруг среднего времени, в то время как Poisson Random Timer создает более случайные, менее предсказуемые интервалы времени.

Вопрос 25. Что такое Rendezvous Point?

Rendezvous Point в JMeter используется для выполнения нагрузочного тестирования с резким увеличением числа пользователей (spike testing). Это реализуется с помощью элемента “Synchronizing Timer”, который ожидает, пока число активных пользователей не достигнет заданного значения.

Вопрос 26. Что такое утверждения (Assertions) в JMeter? Перечислите доступные типы утверждений.

Утверждения в JMeter используются для проверки правильности ответов, получаемых от сервера после выполнения запросов. Наиболее часто используемые утверждения:

  • Response Assertion
  • Size Assertion
  • XML Assertion
  • BeanShell Assertion
  • HTML Assertion
  • XPath Assertion и другие.

Вопрос 27. Для чего используются элементы конфигурации?

Элементы конфигурации используются для настройки запросов сэмплеров. Например, CSV Data Set Config может использоваться для параметризации запросов сэмплеров с данными, полученными из внешнего CSV-файла.

Вопрос 28. Что такое предобработчики (Pre-Processors)?

Предобработчики — это элементы теста, которые выполняются до отправки запроса сэмплера. Их основная задача — подготовить данные или выполнить действия, которые необходимы перед тем, как запрос будет отправлен на сервер. Это может включать в себя настройку переменных, изменение значений, добавление заголовков или выполнение каких-то операций, которые должны быть выполнены до основного запроса.

Наиболее часто используемые предобработчики:

  • BeanShell PreProcessor
  • HTML Link Parser
  • HTTP URL Re-writing Modifier
  • RegEx User Parameters и другие.

Вопрос 29. Что такое постобработчики (Post-Processors)?

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

Вопрос 30. Каков порядок выполнения элементов плана тестирования в JMeter?

Порядок выполнения элементов плана тестирования:

  1. Элементы конфигурации
  2. Предобработчики
  3. Таймеры
  4. Сэмплеры
  5. Постобработчики
  6. Утверждения
  7. Слушатели

Вопрос 31. Как запустить JMeter в режиме без графического интерфейса (non-GUI mode)?

Команда для запуска JMeter в режиме без графического интерфейса:

jmeter -n -t test.jmx -l test.jtl

Где:

-n — указывает на запуск без графического интерфейса,
-t — путь к тестовому файлу,
-l — путь к файлу JTL для сохранения результатов теста.

Вопрос 32. Как можно уменьшить потребление ресурсов в JMeter?

Для оптимизации потребления ресурсов рекомендуется:

  • Использовать режим без графического интерфейса: jmeter -n -t test.jmx -l test.jtl.
  • Использовать как можно меньше слушателей.
  • Избегать использования “View Results Tree” или “View Results in Table” во время нагрузочного теста, применяя их только на этапе отладки.
  • Использовать один самплер в цикле вместо множества похожих самплеров.
  • Не использовать функциональный режим JMeter во время нагрузочного тестирования.
  • Сохранять результаты в формате CSV вместо XML.
  • Сохранять только необходимые данные.
  • Уменьшить количество утверждений.

Вопрос 33. Что такое метрика «90% line» в JMeter?

Метрика “90% line” в отчете Aggregate Report означает, что 90% запросов были выполнены не дольше указанного времени. Это 90-й перцентиль времени отклика запросов.
Формула:

90-й перцентиль = (90/100) * N + 1/2

где N — количество запросов. Например, если запросов 10, то 90% line будет соответствовать 9-му значению в отсортированном по возрастанию списке времени отклика.

Вопрос 34. Что такое распределенное нагрузочное тестирование? Как его реализовать в JMeter?

Распределенное нагрузочное тестирование в JMeter используется для создания нагрузки с помощью нескольких машин, что позволяет имитировать большое количество пользователей и тестировать систему на масштабируемость и производительность при высокой нагрузке. Это важно, поскольку одна машина может ограничить количество потоков (виртуальных пользователей), которые она может обработать, из-за ограничений по памяти и процессору.

В JMeter распределенное тестирование настраивается через конфигурацию мастер-слейв. В этой схеме:

  • Мастер (master) — это основной сервер, который управляет тестом, запускает тесты и собирает результаты.
  • Слейвы (slaves) — это дополнительные машины, которые выполняют тесты, генерируя нагрузку, отправляя запросы и передавая результаты обратно на мастер.

Вопрос 35. Можно ли выполнять скрипты Selenium в JMeter?

Да, с помощью плагина WebDriver Set можно запускать скрипты Selenium WebDriver в JMeter.

Перевод статьи «JMeter Interview Questions».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *