Как стать нагрузочником

«Для начала необходимо прояснить одну вещь — задачи инженера производительности (Performance Engineer) отличаются от задач тестировщика производительности (Performance Tester). Работа инженера производительности требует глубоких знаний в смежных областях и является намного более сложной, чем работа тестировщика производительности. Далее обсудим, что нужно изучить, чтобы стать тестировщиком производительности (или, как пишут HR’ы в описаниях вакансий — «нагрузочником»).

Изучите основы тестирования

Залогом успеха является понимание теории тестирования: знакомство с типами тестов и терминологией тестирования. Изучение тестирования — непрерывный процесс, технологии и инструменты в этой области непрерывно развиваются, поэтому важно оставаться «в теме».

Изучите хотя бы один язык программирования

Следующий этап: овладение навыками программирования. Программирование это фундаментальный инструмент, который позволит автоматизировать свои тесты, а также анализировать метрики, находить  «узкие места» в производительности тестируемой системы.

Какой язык программирования изучать? Для новичка (а вы новичок), вариантов всего три: Java, Python и JavaScript.

  • Java — самый популярный ЯП в сфере тестирования производительности. На Java пишут тесты для JMeter и Gatling (по ссылке — ознакомительный гайд). Кроме того, у Java большое комьюнити и обширнейшая документация. Java — главный путь, магистральный путь, если вы всерьез собираетесь в Performance Testing.
  • Python — неплохой вариант для тех, кто только начинает учить программирование (и раньше не учил С++, Pascal и пр.). Python простой язык, и при этом «дополнен» множеством библиотек для тестирования производительности, таких как Locust и pytest (здесь вводный гайд по pytest). Однако, с моей точки зрения, он может научить лишь некоторым, менее оптимальным, методам программирования, из-за своей динамически типизированной природы.
  • Последний язык, который я бы лично рассматривал — это JavaScript. За последние несколько лет мы наблюдали рост популярности инструмента для тестирования производительности под названием k6 (здесь туториал). Это «революционный» инструмент по многим причинам. Единственный недостаток заключается в том, что он пока не очень широко используется в коммерческих проектах. Это нужно иметь в виду при выборе языка программирования.

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

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

Изучение программирования — это процесс, требующий времени и терпения. Начните с простых проектов и постепенно развивайте свои навыки.

Инструменты 

После того как вы освоите основы программирования, вы должны овладеть хотя бы одним инструментом для тестирования производительности. У вас несколько вариантов — JMeter, k6, Locust или Gatling (сравнение этих инструментов — по ссылке). 

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

k6 тоже заслуживает внимания, так как это относительно новый инструмент, и он набирает популярность в комьюнити «нагрузочников». Он основан на JavaScript, что делает его привлекательным выбором для людей, которые имеют опыт работы с этим языком. В k6 простой синтаксис и он позволяет писать тесты производительности «более программным» способом. Это может быть полезно вам, если придется работать в DevOps-командах или вам будут ставить задачи по интеграции тестирования производительности в процесс непрерывной интеграции и доставки.

Locust — еще один интересный вариант, также основанный на Python. Этот инструмент отличается исключительной гибкостью и позволяет писать тесты в коде, обеспечивая высокий уровень контроля над тестовыми сценариями. 

Gatling часто выбирают в командах, ориентированных на разработчиков (developer-centric environments), и он известен своей скоростью и эффективностью. 

На мой взгляд, и Gatling, и Locust могут быть эффективно заменены на k6.

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

Если бы мне снова пришлось выбирать, с чего начинать путь сейчас, я бы начал с k6.

Основы программной инженерии

Нужно хорошо знать принципы программной инженерии. Это сделает вас эффективным тестировщиком производительности, а также обеспечит всестороннее понимание процесса разработки.

Прежде всего, вы должны понять жизненный цикл разработки программного обеспечения (SDLC), который определяет этапы и процессы разработки от первоначального планирования и сбора требований до написания кода, тестирования, развертывания и сопровождения. Понимание основных SDLC-моделей (Waterfall, Agile, DevOps) будет иметь значение в дальнейшем продвижении.

Кроме того, необходимо обладать базовыми знаниями о системах контроля версий (VC). Эти системы позволяют управлять исходным кодом, отслеживать изменения и работать в команде. Примером популярного инструмента контроля версий является Git.

Observability (наблюдаемость системы)

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

Безусловно, в контексте наблюдаемости значительным преимуществом на начальном этапе будет знакомство, в первую очередь, с Grafana и системами агрегации данных, такими как Prometheus и InfluxDB, которые интегрируются с JMeter или k6. Это инструменты со сравнительно низким порогом входа, на самом деле они довольно сложные.

Итак

Итак, путь к профессии тестировщика производительности: 1) освоение основ тестирования, 2) навыков программирования, 3) инструментов тестирования производительности, 4) принципов программной инженерии и 5) инструментов мониторинга».

Источник

Автор: Grzegorz Piechnik, Performance Engineer, k6 Champion (контрибьютор Grafana и K6).


К этому можно добавить, что в целом у Performance Tester больше возможностей найти удаленную работу и больше вариантов с релокацией.

В завершение процитируем Яндекс.Практикум: «Специалисты, которые разбираются в инструментах нагрузочного тестирования и умеют разрабатывать автотесты, могут рассчитывать на более высокую зарплату». Насколько более высокую? Эта разница в зарплате между «обычным» тестировщиком и «нагрузочником» составляет, по разным источникам, от 25-30 до 100% и более.


По теме:

Раздел на TestEngineer, посвященный тестированию производительности


Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас