Сообщение Как тестировать серверные сервисные приложения? от 12.12.2022 2:09
Изменено 12.12.2022 2:39 vsb
Как тестировать серверные сервисные приложения?
Имеется приложение. При старте запускает веб-сервер. Для работы использует СУБД. Принимает некие HTTP запросы с JSON телами и отвечает так же. Также само запрашивает некоторые другие сервисы по HTTP. Также в будущем будет работать с Rabbit MQ.
Хочется понять, как такое приложение тестировать на верхнем уровне.
Сейчас это делается юнит-тестами. Запускается несколько мок-серверов, запускается при старте теста БД, в эту БД код кладёт начальные данные, вызывает нужные эндпоинты, в конце проверяет, вызывались ли нужные эндпоинты у мок-серверов, проверяет, изменились ли данные в БД.
Проблема в том, что эти тесты очень муторно писать. Разработчики их писать ленятся, не-разработчики таким скиллом не обладают по-большому счёту.
Задача мне кажется типовой и достаточно универсальной. Но не очень понимаю, как гуглить.
По сути нужен инструмент, в котором во-первых будет хороший UI для тестера для редактирования тестовых сценариев. Тестовый сценарий включает в себя подготовку окружения (данные для БД, настройка мок-серверов), вызов нужного эндпоинта в тестируемом сервисе и, собственно, проверку предположений (база поменялась, мок-серверы вызывались). Во-вторых сохранение этих сценариев в файлах и вызов какого-то консольного приложения для их запуска (чтобы настроить автоматический прогон этих тестов).
Хочется понять, как такое приложение тестировать на верхнем уровне.
Сейчас это делается юнит-тестами. Запускается несколько мок-серверов, запускается при старте теста БД, в эту БД код кладёт начальные данные, вызывает нужные эндпоинты, в конце проверяет, вызывались ли нужные эндпоинты у мок-серверов, проверяет, изменились ли данные в БД.
Проблема в том, что эти тесты очень муторно писать. Разработчики их писать ленятся, не-разработчики таким скиллом не обладают по-большому счёту.
Задача мне кажется типовой и достаточно универсальной. Но не очень понимаю, как гуглить.
По сути нужен инструмент, в котором во-первых будет хороший UI для тестера для редактирования тестовых сценариев. Тестовый сценарий включает в себя подготовку окружения (данные для БД, настройка мок-серверов), вызов нужного эндпоинта в тестируемом сервисе и, собственно, проверку предположений (база поменялась, мок-серверы вызывались). Во-вторых сохранение этих сценариев в файлах и вызов какого-то консольного приложения для их запуска (чтобы настроить автоматический прогон этих тестов).
Как тестировать серверные сервисные приложения?
Имеется приложение. При старте запускает веб-сервер. Для работы использует СУБД. Принимает некие HTTP запросы с JSON телами и отвечает так же. Также само запрашивает некоторые другие сервисы по HTTP. Также в будущем будет работать с Rabbit MQ.
Хочется понять, как такое приложение тестировать на верхнем уровне.
Сейчас это делается юнит-тестами. Запускается несколько мок-серверов, запускается при старте теста БД, в эту БД код кладёт начальные данные, вызывает нужные эндпоинты, в конце проверяет, вызывались ли нужные эндпоинты у мок-серверов, проверяет, изменились ли данные в БД.
Проблема в том, что эти тесты очень муторно писать. Разработчики их писать ленятся, не-разработчики таким скиллом не обладают по-большому счёту.
Задача мне кажется типовой и достаточно универсальной. Но не очень понимаю, как гуглить.
По сути нужен инструмент, в котором во-первых будет хороший UI для тестера для редактирования тестовых сценариев. Тестовый сценарий включает в себя подготовку окружения (данные для БД, настройка мок-серверов), вызов нужного эндпоинта в тестируемом сервисе и, собственно, проверку предположений (база поменялась, мок-серверы вызывались). Во-вторых сохранение этих сценариев в файлах и вызов какого-то консольного приложения для их запуска (чтобы настроить автоматический прогон этих тестов).
Пока вижу два подхода:
1. Собрать свой велосипед из полу-готовых инструментов. К примеру реализовать вставку в БД/верификацию по XLSX и готовить данные в экселе. Для мока использовать что-то вроде wiremock, у него там есть свои конфиги. В итоге тестировщик будет в кучке файлов возиться.
2. Сделать всё через Postman. Я им сам не пользовался, могу ошибаться, но вроде там есть возможность написания тестовых сценариев. При этом для работы с БД параллельно запустить второй сервис, который даёт универсальный HTTP-интерфейс для базы и подготавливать/проверять данные в Postman вызывая этот сервис.
Хочется понять, как такое приложение тестировать на верхнем уровне.
Сейчас это делается юнит-тестами. Запускается несколько мок-серверов, запускается при старте теста БД, в эту БД код кладёт начальные данные, вызывает нужные эндпоинты, в конце проверяет, вызывались ли нужные эндпоинты у мок-серверов, проверяет, изменились ли данные в БД.
Проблема в том, что эти тесты очень муторно писать. Разработчики их писать ленятся, не-разработчики таким скиллом не обладают по-большому счёту.
Задача мне кажется типовой и достаточно универсальной. Но не очень понимаю, как гуглить.
По сути нужен инструмент, в котором во-первых будет хороший UI для тестера для редактирования тестовых сценариев. Тестовый сценарий включает в себя подготовку окружения (данные для БД, настройка мок-серверов), вызов нужного эндпоинта в тестируемом сервисе и, собственно, проверку предположений (база поменялась, мок-серверы вызывались). Во-вторых сохранение этих сценариев в файлах и вызов какого-то консольного приложения для их запуска (чтобы настроить автоматический прогон этих тестов).
Пока вижу два подхода:
1. Собрать свой велосипед из полу-готовых инструментов. К примеру реализовать вставку в БД/верификацию по XLSX и готовить данные в экселе. Для мока использовать что-то вроде wiremock, у него там есть свои конфиги. В итоге тестировщик будет в кучке файлов возиться.
2. Сделать всё через Postman. Я им сам не пользовался, могу ошибаться, но вроде там есть возможность написания тестовых сценариев. При этом для работы с БД параллельно запустить второй сервис, который даёт универсальный HTTP-интерфейс для базы и подготавливать/проверять данные в Postman вызывая этот сервис.