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 и сохраняйте первую существенную ошибку.
Указывайте ответственного и дату проверки для каждого исключения.
Называйте видимый резервный путь, чтобы поддержка повторила результат.
Сделайте запись понятной тому, кто не запускал браузер, и укажите границу, результат и следующий шаг.
Так узкое доказательство не станет универсальным обещанием.
Записывайте дату и ответственного за следующую проверку.
Так уверенность остаётся актуальной.
Результат должен сохранять границу между соответствием и поведением приложения.
Не выдавайте контролируемый контекст за универсальную гарантию.
Источники
Похожие статьи
Переведите BotBrowser из исследований в продакшн
Используйте эти руководства, чтобы понять модель, а затем перейти к кроссплатформенной валидации, изолированным контекстам и масштабируемому браузерному развертыванию.