Назад к блогу
Платформа

Web Platform Tests для уверенности в возможностях браузера

Сочетайте Web Platform Tests, проверки во время выполнения и assertions приложения для оценки возможностей браузера.

Документация

Нужна структурированная документация по теме Платформа?

Эта статья относится к редакционной библиотеке. Для пошаговой настройки, справки и постоянных обновлений переходите сразу в соответствующий раздел docs.

Веб-тест ведёт к проверке возможности и результату приложения

Web Platform Tests дают доказательство соответствия заявленным условиям, но не гарантируют каждый путь приложения. Разделяйте спецификацию, общий тест, локальную проверку и видимый сигнал приложения. Возможность не раскрывает личность или устройство.

Выбор доказательства WPT

Изучите репозиторий WPT и API testharness. Запишите путь, спецификацию, версию, origin, разрешения и дату. Пропущенный, экспериментальный или ожидаемо неудачный тест требует резервного пути.

Читайте метаданные вместе с результатом. Локальный запуск может отличаться из-за защищённого контекста, жеста пользователя или политики разрешений. Перед повторным использованием проверьте лицензию, зависимости и очистку.

Проверка возможности

Проверяйте нужный метод непосредственно перед вызовом. Разделяйте отсутствует, доступен, запрещён, завершился ошибкой и завершён. Наличие свойства не доказывает разрешение, доступность сервиса или запись на сервере.

Сохраняйте ввод и предлагайте доступный резервный путь. Записывайте origin, контекст, версию, состояние, резервный путь и видимый результат без лишних данных.

Таблица решения

НаблюдениеРешениеВидимый результатГраница
WPT прошёл в матрицевключить кандидатпопробовать после проверкизаявленное соответствие
WPT пропущен или эксперименталенизучить метаданныесохранить резервный путьпокрытие тестом
Метод отсутствует или контекст заблокированиспользовать резервный путьсохранить задачувозможность страницы
Вызов отклонёнклассифицировать один разпоказать восстановлениеповедение браузера
Вызов завершёнпроверить приложениеподтвердить видимый сигналбраузер и приложение

Сбойный fixture

Fixture создаёт элементы, имитирует только собственный API, проверяет видимый текст и удаляет узлы во всех ветвях. Не меняйте отпечаток и не отправляйте учётные данные.

async function run() {
  const h = document.createElement('div');
  h.innerHTML = '<p id="state"></p><button id="fallback" hidden>Использовать резервный путь</button>';
  document.body.append(h);
  const state = h.querySelector('#state');
  const fallback = h.querySelector('#fallback');
  try {
    const ok = typeof navigator.share === 'function';
    const result = ok
      ? await navigator
          .share({ title: 'Синтетический элемент', url: '/fixture' })
          .then(() => 'done')
          .catch(() => 'failed')
      : 'missing';
    state.textContent = result === 'done' ? 'Завершено' : 'Используйте резервный путь';
    if (result !== 'done') fallback.hidden = false;
    console.assert(state.textContent && (result === 'done' || !fallback.hidden));
    return result;
  } finally {
    h.remove();
  }
}

Проверка приложения

После вызова проверьте сообщение, элемент или запись, принадлежащие приложению. Успешная promise не доказывает запись на сервере. Разделяйте результаты и проверяйте фокус, клавиатуру, подписи и восстановление.

Повторяйте матрицу после версии, спецификации, защищённого контекста, разрешения или изменения harness. Сохраняйте путь WPT, состояние, резервный путь и дату без личного содержимого.

BotBrowser: границы

BotBrowser предоставляет контролируемые контексты для разрешённых сценариев по мотивам WPT и повторяемых проверок. Изолированный контекст разделяет изменяемое состояние и сравнивает видимые результаты.

Он не сертифицирует WPT, не выдаёт разрешения, не делает origin безопасным, не заменяет инфраструктуру соответствия и не доказывает серверную транзакцию. Документация об изоляции BotBrowser подтверждает повторяемость, а не универсальную гарантию.

Смотрите также руководство по совместимости API и руководство WebDriver BiDi.

BotBrowser предоставляет повторяемые проверки в разрешённых контекстах по мотивам WPT, но не гарантирует соответствие, не выдаёт разрешения и не заменяет доказательство транзакции. Записывайте обе границы.

Уверенность выше, когда у спецификации, WPT, матрицы браузеров, приложения и fixture есть ответственный. Сохраняйте путь, версию, origin, состояние, резервный путь и видимый результат.

Используйте отрицательные результаты честно. Пропуск, отказ или тайм-аут нужно классифицировать, а резервный путь удалять только после подтверждения приложения.

Сохраняйте краткую запись с путём WPT, версией, контекстом, состоянием и видимым утверждением.

Сравнивайте кандидат с предыдущей версией тем же fixture и сохраняйте первую существенную ошибку.

Указывайте ответственного и дату проверки для каждого исключения.

Называйте видимый резервный путь, чтобы поддержка повторила результат.

Сделайте запись понятной тому, кто не запускал браузер, и укажите границу, результат и следующий шаг.

Так узкое доказательство не станет универсальным обещанием.

Записывайте дату и ответственного за следующую проверку.

Так уверенность остаётся актуальной.

Результат должен сохранять границу между соответствием и поведением приложения.

Не выдавайте контролируемый контекст за универсальную гарантию.

Источники

#Web Platform Tests#Совместимость#Соответствие#Проверка#Тесты

Переведите BotBrowser из исследований в продакшн

Используйте эти руководства, чтобы понять модель, а затем перейти к кроссплатформенной валидации, изолированным контекстам и масштабируемому браузерному развертыванию.