нагрузочное тестирование API

Стоит задача реализовать нагрузочное тестирование API. На стороне апи будет реализовано много сервисов, но вход будет один. Нужно не просто написать нагрузочные тесты, но и проверить какой из сервисов дал сбой, если таковое будет. МОжно ли будет собрать такую статистику посредствам написания нагрузочных тестовю И какой лучше инструмент взять, при том, что запросы будут передаваться по https - протоколу. Спасибо

А можно попросить вас расшифрвать своё понимание API? У меня есть подозрение, что вы не совсем правильно поняли и использовали данный термин.

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

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

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

Мы используем Gatling и Jmeter для создания нагрузки на фронтенды (WEB, REST API). Для валидации происходящего на стороне отдельных сервисов используем Graphite. Главное хорошо настроить Graphite и выбрать параметры для валидации.

1 лайк

SOAP UI, LOAD UI от Smart Bear Вам в помощь

а кто-то знает возможно ли нагрузочное тестирование API с Frisby.js?

Ну, в таком случае, мне, кажется правильнее будет протестировать все сервисы отдельно и понять, какой их них медленно обрабатывает звпросы. А делать это снаружи через ещё один сервис, это всё равно как тестировать работу сети через прокси.

1 лайк

Спасибо за ответ. Может подскажете еще какой-нибудь тул?

Их сейчас полно. Как уже упоминали, помимо Jmeter - Gathling (если не ошибюсь он на Scala)? K6 - Написан на Go для скриптования использует JS, к сожалению. Плюс платные, но дума, что можно и без них :slight_smile:

1 лайк