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

наверное, большинство из нас работают в проектах, которым требуется нагрузочное тестирование. Если в компании всё хорошо с процессами, то для этой деятельности обычно выделяются специально обученные люди, которые пишут полноценные нагрузочные сценарии с помощью какого-нибудь JMeter. Но что же делать, если таких людей нет, а тестировать — надо?

Тут важно понять, на сколько серьезно мы хотим тестировать наш продукт. Если вы понимаете, что нагрузочное тестирование в проекте нужно на постоянной основе, то, вероятно, надо изучать серьезные инструменты. Например, это могут быть JMeter, или Яндекс.Танк. Это потребует некоторого времени для старта, зато результат вас не разачарует.

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

Во-первых, мы можем написать нагрузочные тесты сами, используя тот же язык программирования (и фреймворк для тестирования), на котором написан проект. Нет ничего странного в том, чтобы взять условный JUnit, создать 20-30 threads и начать обстреливать наше API. Это вполне рабочий вариант, причём, за счёт общей кодовой базы результат появится крайне быстро.

Другой вариант — взять одну из готовых CLI утилит для нагрузочного тестирования, которая имеет низкий порог входа. На гитхабе есть целые списки таких программ:

Лично мне нравится проект — vegeta. Это программа на Golang, которая умеет прям всё в нагрузочном тестировании: выполнить обстрел API, собрать данные, построить статистики, визуализировать результат. Сказка, да и только! Хороший пример использовать Вегеты — https://www.scaleway.com/en/docs/vegeta-load-testing/. По этому примеру вы начнете тестировать ваше API буквально за 5 минут.

Категории: Программирование

Метки: