Информация об изменениях

Сообщение Как тестировать серверные сервисные приложения? от 12.12.2022 2:09

Изменено 12.12.2022 2:39 vsb

Как тестировать серверные сервисные приложения?
Имеется приложение. При старте запускает веб-сервер. Для работы использует СУБД. Принимает некие HTTP запросы с JSON телами и отвечает так же. Также само запрашивает некоторые другие сервисы по HTTP. Также в будущем будет работать с Rabbit MQ.

Хочется понять, как такое приложение тестировать на верхнем уровне.

Сейчас это делается юнит-тестами. Запускается несколько мок-серверов, запускается при старте теста БД, в эту БД код кладёт начальные данные, вызывает нужные эндпоинты, в конце проверяет, вызывались ли нужные эндпоинты у мок-серверов, проверяет, изменились ли данные в БД.

Проблема в том, что эти тесты очень муторно писать. Разработчики их писать ленятся, не-разработчики таким скиллом не обладают по-большому счёту.

Задача мне кажется типовой и достаточно универсальной. Но не очень понимаю, как гуглить.

По сути нужен инструмент, в котором во-первых будет хороший UI для тестера для редактирования тестовых сценариев. Тестовый сценарий включает в себя подготовку окружения (данные для БД, настройка мок-серверов), вызов нужного эндпоинта в тестируемом сервисе и, собственно, проверку предположений (база поменялась, мок-серверы вызывались). Во-вторых сохранение этих сценариев в файлах и вызов какого-то консольного приложения для их запуска (чтобы настроить автоматический прогон этих тестов).
Как тестировать серверные сервисные приложения?
Имеется приложение. При старте запускает веб-сервер. Для работы использует СУБД. Принимает некие HTTP запросы с JSON телами и отвечает так же. Также само запрашивает некоторые другие сервисы по HTTP. Также в будущем будет работать с Rabbit MQ.

Хочется понять, как такое приложение тестировать на верхнем уровне.

Сейчас это делается юнит-тестами. Запускается несколько мок-серверов, запускается при старте теста БД, в эту БД код кладёт начальные данные, вызывает нужные эндпоинты, в конце проверяет, вызывались ли нужные эндпоинты у мок-серверов, проверяет, изменились ли данные в БД.

Проблема в том, что эти тесты очень муторно писать. Разработчики их писать ленятся, не-разработчики таким скиллом не обладают по-большому счёту.

Задача мне кажется типовой и достаточно универсальной. Но не очень понимаю, как гуглить.

По сути нужен инструмент, в котором во-первых будет хороший UI для тестера для редактирования тестовых сценариев. Тестовый сценарий включает в себя подготовку окружения (данные для БД, настройка мок-серверов), вызов нужного эндпоинта в тестируемом сервисе и, собственно, проверку предположений (база поменялась, мок-серверы вызывались). Во-вторых сохранение этих сценариев в файлах и вызов какого-то консольного приложения для их запуска (чтобы настроить автоматический прогон этих тестов).

Пока вижу два подхода:

1. Собрать свой велосипед из полу-готовых инструментов. К примеру реализовать вставку в БД/верификацию по XLSX и готовить данные в экселе. Для мока использовать что-то вроде wiremock, у него там есть свои конфиги. В итоге тестировщик будет в кучке файлов возиться.

2. Сделать всё через Postman. Я им сам не пользовался, могу ошибаться, но вроде там есть возможность написания тестовых сценариев. При этом для работы с БД параллельно запустить второй сервис, который даёт универсальный HTTP-интерфейс для базы и подготавливать/проверять данные в Postman вызывая этот сервис.