Как проверить производительность загрузки формы
Что проверяют
Различаете ли вы две разные задачи: как быстро форма открывается у одного пользователя в браузере и как ведёт себя сервер, когда её открывают и отправляют сотни человек. Следом обычно просят назвать метрики и их пороги.
Как отвечать
Уточните, что считать «загрузилась»: отрисовался каркас или подтянулись справочники в выпадающих списках и можно вводить данные. Потом разберите обе стороны.
Клиентская часть:
- Chrome DevTools: вкладка Network показывает TTFB, размер и порядок запросов, вкладка Performance показывает долгие задачи в главном потоке. Мерить стоит с троттлингом сети и CPU, иначе на мощном ноутбуке всё будет быстро;
- Lighthouse и WebPageTest: повторяемые замеры и Core Web Vitals. Ориентиры «хорошо»: LCP до 2,5 с, INP до 200 мс, CLS до 0,1. INP заменил FID в 2024 году, так что ссылка на FID сейчас выдаёт устаревшие знания;
- холодный и тёплый кеш: первый и повторный заход дают разные цифры, нужны оба.
Серверная часть: запросы, которыми форма тянет данные и отправляет результат, нагружаются в JMeter, Gatling, k6 или Locust. Нагрузку поднимают ступенями, смотрят перцентили p95 и p99, пропускную способность и долю ошибок, параллельно метрики сервера и базы. Цель берут из требований, например «p95 отправки формы не больше секунды при 200 одновременных пользователях», а без требований сначала снимают базовую линию.
В отчёте фиксируются окружение, данные, профиль нагрузки и найденные узкие места: тяжёлый бандл, последовательные запросы справочников, медленный запрос к базе.
Где спотыкаются
Отвечают только про JMeter. Он не исполняет JavaScript и не скажет, сколько форма рендерится в браузере.
Смотрят среднее время ответа. Среднее прячет хвост, из-за которого и жалуются пользователи, поэтому нужны перцентили.
Меряют один раз на своей машине без троттлинга и выдают эту цифру за результат.