Блог и новости

Пошаговые API-проверки с Playwright: Мониторинг и тестирование без границ!

Мы рады объявить о значительном расширении возможностей нашего продукта: теперь вы можете выполнять Пошаговые API-проверки с использованием Playwright-скриптов! Эта новая функция предоставляет беспрецедентную гибкость и контроль над мониторингом и тестированием ваших API, позволяя вам автоматизировать сложные сценарии непосредственно на нашей платформе.
API являются кровеносными сосудами современных приложений, и их надежность критически важна. Традиционные проверки API часто ограничены одним запросом, что затрудняет тестирование сложных бизнес-процессов, включающих несколько шагов, зависимостей и авторизацию. Именно здесь на помощь приходят пошаговые проверки с Playwright.
Мы позволяем вам запускать ваши собственные Playwright-скрипты, которые могут выполнять цепочки запросов, обрабатывать ответы, извлекать данные и проверять логику. В ответ вы получаете подробный отчет о выполнении с пошаговым протоколом, что значительно упрощает отладку и анализ.

Когда это удобно? Случаи использования

Playwright для API-проверок открывает множество сценариев, которые раньше были сложными или невозможными:
  • Комплексные бизнес-процессы: Тестируйте сквозные сценарии, такие как регистрация пользователя, оформление заказа или обновление статуса, которые включают взаимодействие с несколькими API-эндпоинтами.
  • Проверка авторизации и аутентификации: Убедитесь, что ваши механизмы авторизации (например, OAuth, JWT) работают корректно, выполняя последовательность запросов с токенами.
  • CRUD-операции: Проверяйте создание, чтение, обновление и удаление данных через ваш API, имитируя реальные пользовательские взаимодействия.
  • Тестирование зависимостей: Проверяйте, как изменения в одном API влияют на другие, зависящие от него.
  • Имитация пользовательских сессий: Создавайте скрипты, которые имитируют полный жизненный цикл сессии пользователя, от входа до выхода.
  • Регрессионное тестирование: Автоматически проверяйте, что новые изменения в вашем API не нарушили существующую функциональность.

Почему Playwright — это круто для API-тестирования?

Playwright известен как гибкий инструмент для автоматизации браузеров, но его возможности делают его идеальным инструментом для API-тестирования.
  • Мощный и гибкий: Playwright предоставляет интуитивно понятный API для выполнения HTTP-запросов (GET, POST, PUT, DELETE и т.д.), обработки заголовков, параметров и тела запросов/ответов.
  • Поддержка JS/TS: Вы можете писать свои скрипты на TypeScript или обычном JavaScript, используя привычный синтаксис. Это означает, что вы можете легко мигрировать существующие API-тесты, написанные на Playwright, на нашу платформу без изменения самих скриптов!
  • Интегрированная отчетность: Playwright изначально поддерживает логирование и отчетность, что позволяет нам предоставлять вам подробные пошаговые отчеты о выполнении каждого вашего скрипта.
  • Активное сообщество: Playwright имеет огромное и активно развивающееся сообщество, что обеспечивает постоянную поддержку и обновления.

Простой старт с готовыми шаблонами и примеры

Мы понимаем, что начало работы может быть непростым. Именно поэтому в нашем пользовательском интерфейсе (UI) мы предоставляем готовые шаблоны Playwright-скриптов, которые помогут вам быстро освоиться и начать создавать свои собственные проверки.
Давайте рассмотрим пример скрипта Playwright для выполнения комплексных API-операций (CRUD + Auth) на платформе Pingera:
const { test, expect } = require('@playwright/test');

const baseUrl = "https://api.pingera.ru/v1";
const authToken = "YOUR_AUTH_TOKEN"; // Замените на ваш реальный токен

test("Auth + CRUD - Create, Read, Delete Page", async ({ request }) => {
  const headers = {
    "Authorization": authToken,
    "Content-Type": "application/json"
  };

  // Создание новой страницы
  const page = await test.step("Create new page", async () => {
    console.log('Попытка отправить POST-запрос на:', `${baseUrl}/pages/`);
    try {
      const response = await request.post(`${baseUrl}/pages/`, {
        headers,
        data: {
          name: "Test Page " + Date.now(),
          page_description: "This is a test page created via API"
        }
      });

      console.log('Успешно получен ответ со статусом:', response.status());
      expect(response.ok()).toBe(true);
      const pageData = await response.json();
      expect(pageData).toHaveProperty("id");

      console.log("Создана страница с ID:", pageData.id);
      return pageData;

    } catch (e) {
      console.error('Произошла ошибка во время вызова request.post:', e);
      throw e;
    }
  });

  // Получение созданной страницы по ID
  await test.step("Get page by ID", async () => {
    const response = await request.get(`${baseUrl}/pages/${page.id}`, {
      headers
    });

    expect(response).toBeOK();
    const pageData = await response.json();
    expect(pageData.id).toBe(page.id);
    expect(pageData.name).toBe(page.name);
    console.log("Успешно получена страница:", pageData.name);
  });

  // Удаление страницы
  await test.step("Delete page", async () => {
    const response = await request.delete(`${baseUrl}/pages/${page.id}`, {
      headers
    });

    expect(response).toBeOK();
    console.log("Успешно удалена страница с ID:", page.id);
  });

  // Проверка удаления страницы
  await test.step("Verify page deletion", async () => {
    const response = await request.get(`${baseUrl}/pages/${page.id}`, {
      headers
    });

    // Ожидаем 404 или аналогичную ошибку
    expect(response.status()).toBe(404);
    console.log("Удаление страницы подтверждено - страница не найдена");
  });
});
Этот скрипт авторизуется, создает новую Статус Страницу, считывает ее, затем удаляет и проверяет, что страница больше недоступна. Это отличный пример того, как Playwright позволяет тестировать полные циклы взаимодействия с API.

Гибкость запуска: Регулярные проверки и проверки по запросу

Мы предоставляем вам полную гибкость в запуске ваших Playwright-скриптов:
  • Регулярные проверки: Настройте автоматические запуски ваших скриптов через определенные интервалы (например, каждые 5 минут), чтобы постоянно мониторить состояние ваших API.
  • Проверки по запросу (On-Demand): Запускайте проверки вручную через наш UI или программно через наш API, когда вам это необходимо, например, после развертывания новой версии.
Все это доступно как через наш интуитивно понятный UI, так и через мощный API.

Интеграция с CI/CD: Автоматизация вашего рабочего процесса

Одна из самых мощных особенностей новой функциональности — это возможность легкой интеграции с вашими существующими CI/CD-пайплайнами. Вы можете автоматизировать выполнение Playwright-скриптов как часть вашего процесса развертывания, гарантируя, что каждая новая сборка будет протестирована до выхода в продакшн.
Для этого достаточно отправить простой POST-запрос на наш API для выполнения проверки по запросу:
HTTP
POST https://api.pingera.ru/v1/checks/execute
Тело запроса:
{
  "name": "My On-Demand Web Check",
  "type": "multistep",
  "timeout": 10,
  "parameters": {
    "pw_script": "ВАШ_PLAYWRIGHT_СКРИПТ_ЗДЕСЬ"
  }
}
Вы получите в ответ job_id:
{
	"job_id": "masked_job_id",
	"message": "Custom check execution queued successfully",
	"status": "queued"
}
А затем сможете получить детальные результаты, опрашивая статус задачи, например:
{
	"check_id": null,
	"check_parameters": {
		"interval": 300,
		"name": "Test",
		"parameters": {
			"pw_script": "// Импортируем необходимые модули из библиотеки Playwright...\n"
		},
		"timeout": 30,
		"type": "multistep"
	},
	"completed_at": "masked_timestamp",
	"created_at": "masked_timestamp",
	"error_message": null,
	"id": "masked_id",
	"job_type": "custom_check",
	"result": {
		"check_id": null,
		"check_metadata": {
			"execution_time": 2260,
			"logs": [
				{
					"level": "log",
					"message": "✅ Тест успешно пройден! Эндпоинт доступен и возвращает непустой результат.",
					"timestamp": "masked_timestamp"
				}
			],
			"test_results": [
				{
					"duration": 130,
					"error": null,
					"name": "должен успешно получить данные и убедиться, что они не пустые",
					"softAssertionErrors": 0,
					"status": "passed",
					"steps": []
				}
			],
			"test_summary": {
				"duration": 130,
				"failed": 0,
				"passed": 1,
				"total": 1
			}
		},
        ...
		"check_server_id": "masked_server_id",
		"error_message": null,
		"job_id": "masked_job_id",
		"response_time": 2260,
		"status": "ok"
	},
	"started_at": "masked_timestamp",
	"status": "completed"
}
Эта глубокая интеграция позволяет вам внедрять тестирование и мониторинг API на каждом этапе вашего цикла разработки.

Почему SaaS-сервис лучше самостоятельного хостинга Playwright?

Возможно, вы задавались вопросом: "Почему бы не хостить Playwright-скрипты самостоятельно?" Ответ кроется в сложности и ресурсоемкости поддержания такой инфраструктуры.
  • Отсутствие накладных расходов на инфраструктуру: Вам не нужно беспокоиться о серверах, масштабировании, обновлении ПО и поддержании работоспособности. Мы берем все это на себя.
  • Глобальное покрытие: Наши распределенные сервера позволяют запускать проверки из разных географических точек, обеспечивая более реалистичную картину производительности и доступности вашего API для различных регионов. Самостоятельное развертывание такой инфраструктуры является дорогостоящим и трудоемким.
  • Автоматические обновления: Мы гарантируем, что вы всегда будете использовать актуальные версии Playwright, без необходимости ручных обновлений и борьбы с несовместимостью.
  • Надежность и отказоустойчивость: Наша платформа разработана с учетом высокой доступности и отказоустойчивости, что обеспечивает бесперебойное выполнение ваших проверок.
  • Сосредоточьтесь на бизнесе: Вместо того чтобы тратить время и ресурсы на DevOps, вы можете полностью сосредоточиться на написании эффективных тестов и разработке вашего продукта.
  • Единая панель управления: Все ваши проверки, отчеты и аналитика доступны в одном месте, что упрощает мониторинг и управление.
Мы уверены, что пошаговые API-проверки с Playwright в платформе Pingera станут незаменимым инструментом в вашем арсенале для обеспечения надежности и качества ваших API. Начните использовать их сегодня и убедитесь в преимуществах!
2025-07-03 16:05 Новости Проверки