Ответ
Эндпоинты и спецификации API для тестирования берутся из следующих источников, расположенных в порядке надежности:
-
Документация API (наиболее предпочтительно):
- Swagger/OpenAPI: Интерактивная спецификация в формате YAML/JSON, часто доступная по URL (например,
/swagger/,/openapi.json). - Postman Collections: Готовые коллекции запросов, экспортированные разработчиками.
- RAML, API Blueprint: Другие форматы описания API.
- Swagger/OpenAPI: Интерактивная спецификация в формате YAML/JSON, часто доступная по URL (например,
-
Общение с командой:
- Разработчики (Backend): Прямой источник актуальной информации об эндпоинтах, параметрах и ожидаемом поведении.
- Техническое задание (ТЗ) / User Stories: В них могут быть описаны ключевые API-интерфейсы.
-
Анализ трафика (если документация отсутствует или устарела):
- Инструменты разработчика браузера (DevTools): Вкладка Network для анализа запросов веб-приложения.
- Прокси-инструменты: Charles Proxy, Fiddler, mitmproxy — для перехвата трафика с мобильных приложений или десктопных клиентов.
- Логи сервера: Могут содержать информацию о вызываемых URL.
Пример фрагмента OpenAPI/Swagger спецификации:
paths:
/api/v1/users:
get:
summary: Get a list of users
parameters:
- name: limit
in: query
schema:
type: integer
responses:
'200':
description: A list of users.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
Практический совет: Всегда начинайте с официальной документации. Если ее нет, согласуйте с командой создание и поддержку хотя бы базовой спецификации OpenAPI — это инвестиция в качество и скорость работы как разработки, так и тестирования.
Ответ 18+ 🔞
О, слушай, смотри-ка, какой у нас тут вопрос про эндпоинты! Ну, блядь, это же святое, основа основ, как подойти к тестированию этой вашей, с позволения сказать, магии — API.
Так, поехали по списку, где эту самую спецификацию, сука, искать. Представь, что ты голодный, а API — это холодильник. Нужно знать, где в нём колбаса, а где, прости господи, трёхлетний творог.
1. Документация API (Идеальный мир, которого не существует, но мы о нём мечтаем) Это как инструкция к холодильнику, которую, блядь, никогда не читают, пока он не начнёт гудеть как реактивный истребитель.
- Swagger/OpenAPI: Вот это, ёпта, наш золотой стандарт, наша библия! Часто лежит по адресам вроде
/swagger-ui.htmlили/v3/api-docs. Открываешь — а там всё разложено: какие ручки куда тыкать, что туда пихать и что оттуда выпадет. Красота, ядрёна вошь! - Postman Collections: Если повезёт, разработчики не поленились и скинули тебе готовую коллекцию. Это как если бы тебе дали уже накрытый стол с образцами всех блюд. Бери и жми "Send".
- RAML, API Blueprint: Ну, другие форматы, суть та же — описание, кто есть кто.
2. Общение с командой (Реальный мир, в котором мы все живём) А вот тут начинается магия, блядь, и волшебство. Документации нет? Или она времён царя Гороха?
- Разработчики (Backend): Это, сука, ходячая, живая, дышащая спецификация! Подходи и спрашивай: "Вася, а на
/api/v1/pokemon/{id}что шлёшь-то? А то у меня тут 500 ошибка, будто я ему говна в запрос подсунул". Главное — подходить с печеньками. Без печенек — нихуя не узнаешь. - ТЗ / User Stories: Иногда там, среди текста про "пользователь должен мочь", прячутся жемчужины: "система вызывает
/api/orderпри нажатии кнопки". Ищешь эти намёки, как клад.
3. Анализ трафика (Мир дикого запада, когда всё пошло по пизде) Документации нет, разработчики в отпуске, а тестировать надо вчера. Что делать? Правильно, блядь, слушать, о чём шепчутся клиент и сервер!
- DevTools -> Network: Открываешь в браузере, начинаешь тыкать в интерфейс и смотреть, какие запросы улетают. Всё как на ладони: URL, заголовки, тело. Просто, как три рубля.
- Прокси (Charles, Fiddler): Это для крутых парней, когда нужно ловить трафик с мобилки или десктопного приложения. Настраиваешь, и весь их секретный сыр-бор течёт через тебя. Овердохуище полезно.
- Логи сервера: Ну, это уже высший пилотаж, когда совсем припёрло. Просишь у админов логи и в них ищешь, какие URL-ы дергали. Муторно, зато точно.
Вот, смотри, как эта самая спецификация в идеале выглядит (кусочек):
paths:
/api/v1/users:
get:
summary: Получить список юзеров
parameters:
- name: limit
in: query
schema:
type: integer
responses:
'200':
description: Список юзеров.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
Видишь? Красота. Тут тебе и путь, и параметры, и что вернётся. Мечта, а не работа.
А теперь практический совет, на полном серьёзе: Если документации нет — это пиздец, товарищи. Это как ехать в незнакомый город без карты. Первым делом, блядь, нужно всем коллективом надавить, чтобы её завели. Хотя бы минимальный Swagger. Это не прихоть тестировщика — это инвестиция, ёпта, в то, чтобы все, включая новых разработчиков, не ходили друг к другу каждые пять минут с вопросом "а как эта штука работает?". Сэкономите кучу времени и нервов. Иначе так и будете жить в режиме "подозрение ебать чувствую" каждый раз, когда дергаете новый эндпоинт.