Пошаговые проверки API
Пошаговые проверки API
Пошаговые проверки API — это мощное расширение синтетических проверок, которое позволяет выполнять сложные сценарии взаимодействия с вашими API. Вместо одной простой проверки вы можете написать собственный скрипт на TypeScript или JavaScript: с использованием Playwright для HTTP-сценариев или напрямую через Node.js-пакеты — например, ws — для мониторинга WebSocket без запуска браузера.
Это позволяет тестировать не отдельные эндпоинты, а целые бизнес-процессы, такие как аутентификация пользователя, оформление заказа или полный CRUD-цикл.
Где это полезно?
Пошаговые проверки API идеально подходят для сценариев, которые невозможно покрыть одним запросом:
- Тестирование авторизации: Выполнить запрос на логин, получить токен (JWT), и использовать этот токен в заголовках последующих запросов к защищённым ресурсам.
- Проверка CRUD-операций: Создать запись (POST), прочитать её (GET), обновить (PUT/PATCH), а затем удалить (DELETE), убеждаясь в корректности каждого шага.
- Сценарии E-commerce: Добавить товар в корзину, проверить содержимое корзины, перейти к оформлению заказа.
- Сложные бизнес-процессы: Любые последовательности действий, где результат одного запроса используется в следующем.
- Мониторинг WebSocket: Проверка подключения к WebSocket-серверу, отправка сообщений и валидация ответов — без использования браузера.
Создание пошаговой проверки API
В меню "Проверки" выберите "Пошаговый API".
Вам нужно будет указать название проверки и написать скрипт в редакторе.

Минимальный интервал для пошаговых проверок составляет 30 секунд.
Написание скрипта
Вы можете писать код на TypeScript или JavaScript. Наша платформа выполнит его в рантайме на основе Node.js с предустановленными пакетами — Playwright для HTTP/браузерных сценариев доступен из коробки, но не является обязательным. Для WebSocket-проверок Playwright не нужен.
Ваш скрипт должен содержать логику проверки. Вот простой пример для проверки API:
// Импортируем необходимые модули из библиотеки Playwright
const { test, expect } = require('@playwright/test');
test.describe('Тестирование API эндпоинта get-templates', () => {
test('должен успешно получить данные и убедиться, что они не пустые', async ({ request }) => {
const apiUrl = 'https://api.pingera.ru/v1/pages/get-templates';
try {
const response = await request.get(apiUrl);
expect(response.ok(), 'API эндпоинт должен быть доступен и возвращать успешный статус.').toBeTruthy();
const responseBody = await response.json();
expect(typeof responseBody, 'Тело ответа должно быть объектом.').toBe('object');
expect(responseBody).not.toBeNull();
expect(Array.isArray(responseBody), 'Тело ответа не должно быть массивом.').toBe(false);
expect(Object.keys(responseBody).length, 'Объект с шаблонами не должен быть пустым.').toBeGreaterThan(0);
console.log('✅ Тест успешно пройден! Эндпоинт доступен и возвращает непустой результат.');
} catch (error) {
console.error('❌ Произошла ошибка во время выполнения теста:', error);
throw error;
}
});
});
Наша система автоматически отследит все сетевые запросы, логи консоли и результат выполнения expect, чтобы предоставить вам детальный отчёт.
Пример: проверка WebSocket
Пошаговые проверки API поддерживают WebSocket напрямую — без необходимости запускать Playwright. Используйте пакет ws, который доступен в нашем рантайме:
import { WebSocket } from 'ws';
const ws = new WebSocket('wss://echo.websocket.org');
await new Promise<void>((resolve, reject) => {
ws.on('open', () => {
console.log('✅ Подключение к WebSocket установлено');
resolve();
});
ws.on('error', reject);
});
const message = 'ping от Pingera';
const response = await new Promise<string>((resolve, reject) => {
let isFirstMessage = true;
ws.on('message', (data) => {
if (isFirstMessage) {
isFirstMessage = false;
return; // skip the server banner
}
resolve(data.toString());
});
ws.on('error', reject);
ws.send(message);
});
if (response !== message) {
throw new Error(`Ожидался ответ "${message}", получен "${response}"`);
}
console.log(`✅ Получен ответ: ${response}`);
ws.close();
Импортируйте WebSocket из пакета ws — он доступен в рантайме без дополнительной установки. Это позволяет тестировать WebSocket-соединения напрямую, без использования браузера.
Использование шаблонов
Чтобы помочь вам быстро начать, мы подготовили несколько шаблонов для самых популярных сценариев. Вы можете выбрать шаблон и адаптировать его под свой API.
Доступные шаблоны включают:
- Полный CRUD-цикл с авторизацией: Шаблон для последовательности запросов POST, GET, PUT, DELETE.
- До и После: Проверка с beforeAll/afterAll для бутсрапа и последующей очистки.
и другие.
Вы можете выбрать шаблон при создании новой пошаговой проверки.
Анализ результатов
После каждого выполнения проверки вы получаете подробный отчёт, который включает:
- Статус выполнения: Успех или ошибка.
- Логи: Все выводы console.log из вашего скрипта.
- Трассировка ошибки: Если проверка не удалась, мы покажем точное место в коде и причину сбоя.
Оповещения
Оповещения для синтетических проверок настраиваются так же, как и для других типов проверок. Вы можете управлять каналами оповещений в разделе "Оповещения" -> "Каналы оповещений".
API
Как и любые другие проверки, синтетические чеки можно запускать и создавать через API. Читайте больше на страницах: