Playwright позволяет имитировать пользовательское взаимодействие с интерфейсами, в которых часто присутствуют поля и виджеты для ввода дат, времени и числовых значений. Корректная работа таких элементов критична для тестовых сценариев, учитывающих локали, временные зоны, валютные форматы и числовые разделители.
В большинстве UI-библиотек трактовка даты и времени зависит от текущей локали браузера. Playwright предоставляет возможность изменять локаль и временную зону, что помогает выявлять ошибки в форматировании.
Ключевые моменты:
Настройки локали и временной зоны задаются при запуске браузера.
Например, для Chromium доступна опция timezoneId,
позволяющая проверить работу интерфейса в разных регионах мира.
При тестировании календарных компонентов важно учитывать различие
между внутренним форматом данных и отображаемым форматом. Многие
компоненты используют ISO-формат для хранения
(YYYY-MM-DDTHH:mm:ssZ) и локальный для отрисовки.
Особенности:
Тесты должны учитывать задержки в рендеринге, особенно для компонентов, загружающих данные асинхронно (например, доступные интервалы времени из API).
Частая задача — сравнить значение в поле с ожидаемым. Сравнение строкового значения недостаточно, когда UI применяет локальное форматирование. Оптимальный подход — преобразование строки обратно в дату или число с учетом локали, после чего сравнение по внутреннему значению.
Для JavaScript удобен объект Date и распростанённые
библиотеки форматирования, поддерживающие локали. При сравнении
учитывается временная зона и возможные сдвиги при конвертации
timestamp.
Числовые поля подвержены влиянию локали так же, как и даты. Разделители тысяч, десятичные разделители, знаки валюты и порядок их расположения создают различия между интерфейсами для разных регионов.
Примеры различий:
1,234.561.234,56€1 234,56 или $1,234.56Playwright позволяет проверять корректность отрисованных значений, а также ввод текста в поля с ожиданием последующего парсинга на стороне приложения.
Некоторые приложения ограничивают формат числового ввода: запрет на буквенные символы, один разделитель дробной части, фиксированное число знаков после него. Playwright позволяет проверять такое поведение поэтапно, моделируя последовательный ввод символов и ожидая реакцию валидации.
Иногда после ввода числа UI применяет автоматическое форматирование (например, после потери фокуса). Тест обязан дождаться события обновления, поскольку форматирование может выполняться асинхронно.
При работе с датами, временем и числами помогает генерация псевдослучайных наборов значений для проверки граничных случаев: начало месяца, високосные годы, переходы через полуночь, отрицательные числа, большие валютные суммы. Такие сценарии особенно полезны для финансовых и аналитических интерфейсов.
Тестовые данные должны быть независимы от локального системного времени, иначе воспроизводимость тестов ухудшается. Браузерные часы можно стабилизировать, используя методы фиксации времени через API браузера, чтобы все вычисления опирались на фиксированную отправную точку.
Многие API и внутренние представления работают с ISO 8601. Такие форматы лишены неоднозначности и хорошо подходят для сравнения. При тестировании важно следить за тем, чтобы UI корректно переводил ISO-значение в отображаемый формат и обратно. Ошибки возникают при несовпадении временных зон или некорректном парсинге.
Переход на летнее время, добавление или удаление часа, а также региональные отличия в правилах перехода создают сложности при сравнении времени. Тесты, использующие фиксированную часовую зону, позволяют выявить проблемы в расчётах, особенно при агрегировании данных.
Полезен сценарий, при котором UI вводит локализованное значение, приложение конвертирует его в ISO или числовой формат, отправляет на сервер, сервер возвращает данные в ISO/числовом формате, а UI повторно отображает их локализованно. Playwright способен полностью автоматизировать такой цикл и выявить ошибки конвертации.
Перед сравнением данных тесты часто нормализуют формат: даты
приводятся к timestamp, числа — к Number или
BigInt. Такой подход избавляет от неоднозначности,
связанной с разделителями и локалями, и позволяет сверять значения, не
завися от визуального оформления.
Ошибки в форматировании могут носить скрытый характер. Для их выявления полезен сбор логов запросов, внутренних значений и сериализованных полей формы. Playwright предоставляет инструменты перехвата запросов и анализа тел ответов, что помогает связать отображаемые данные с их внутренними представлениями.
Правильная работа с датами, временем и числами требует комплексного подхода, включающего локализацию, временные зоны, конвертацию форматов и валидацию пользовательского ввода. Эти элементы нередко становятся источником критичных ошибок в тестируемых приложениях и заслуживают тщательного внимания при построении автоматизированных тестов на Playwright.