Rusau LearnВойти

Инструменты тестировщика

Chrome DevTools для тестировщика: вкладки и поиск багов

Chrome DevTools – инструменты разработчика, встроенные в браузер. Они открываются клавишей F12 или пунктом "Просмотреть код" в контекстном меню и показывают тестировщику то, чего не видно на экране: разметку и стили в Elements, ошибки JavaScript в Console, запросы к серверу и коды ответов в Network. С DevTools к баг-репорту прикладывают текст ошибки, упавший запрос и ответ сервера, и разработчику не приходится угадывать причину.

Мой видеоурок: Урок 14. Что такое DevTools для тестировщика? Инструменты разработчика ChromeОткрыть на YouTube
F12
или Ctrl+Shift+I, на macOS Cmd+Option+I
Network
главная вкладка тестировщика: запросы, ответы и коды
Chrome сегодня
что изменилось с видео 2020 года, отмечено в тексте

Что такое DevTools и как их открыть

DevTools – набор инструментов для разработки веб-приложений, встроенный прямо в браузер. Разработчики собирают с ним страницы, тестировщики смотрят, что происходит у страницы внутри. Похожие инструменты есть во всех браузерах. Edge с 2020 года построен на том же движке Chromium, что и Chrome, и панели в нём те же. В Firefox набор похож, а в Safari инструменты называются Web Inspector и включаются в настройках.

Панель открывается клавишей F12 или сочетанием Ctrl+Shift+I, на macOS – Cmd+Option+I. Если щёлкнуть правой кнопкой по элементу страницы и выбрать "Просмотреть код" (в английском интерфейсе Inspect), DevTools откроются сразу на строке HTML, которая описывает этот элемент.

Через меню из трёх точек в правом верхнем углу панель прикрепляют справа, снизу или слева либо выносят в отдельное окно. Отдельное окно удобно при двух мониторах: на одном страница, на другом DevTools.

Elements: разметка и стили

Во вкладке Elements видно, как элемент записан в HTML, какого он размера и что о нём знают средства доступности (раздел Accessibility). Быстрее всего найти элемент кнопкой со стрелкой в левом верхнем углу панели (Ctrl+Shift+C, на macOS Cmd+Shift+C): после неё достаточно щёлкнуть по нужному месту страницы.

Разметку здесь можно править, и правка сразу видна на странице. В уроке я показываю приём на заголовке сайта. Если дописать в заголовок длинный текст, видно, не наезжает ли он на соседние элементы, а если стереть всё, кроме одного символа, или оставить заголовок пустым, видно, как вёрстка справляется и с этим. Правки живут до перезагрузки и видны только вам, поэтому скриншот с изменённой в DevTools ценой дефектом не считается.

Ниже разметки (или справа, если панель широкая) находится вкладка Styles с CSS элемента: шрифты и их размеры, цвета, внутренние и внешние отступы (padding и margin). Её сверяют с макетами дизайнера, где указано, каким должен быть каждый элемент. Если шрифт или цвет в вёрстке отличается от макета, это дефект.

Console: ошибки JavaScript

В Console попадают сообщения кода страницы. Ошибки выполнения JavaScript подсвечены красным, предупреждения жёлтым. Там же есть строка для команд, где можно выполнить свой скрипт на JavaScript.

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

Перед тем как заводить дефект, стоит проверить, что ошибка относится к самому сайту: реклама и сторонние виджеты тоже пишут в консоль. Список Default levels над журналом оставляет только ошибки или только предупреждения, а консоль перед проверкой полезно очистить, чтобы старые сообщения не путали. В нынешнем Chrome часть предупреждений о cookie, безопасности и совместимости собирается в отдельной панели Issues.

Пример из интернет-магазина: после нажатия "В корзину" счётчик товаров над корзиной не меняется. В Console в этот момент появляется красная ошибка Uncaught TypeError: Cannot read properties of undefined (reading 'id'), а справа от неё ссылка на файл и строку скрипта. В баг-репорт идут товар и шаги, полный текст ошибки и эта ссылка, и разработчик сразу видит, где упал код.

Network: запросы к серверу и ответы

Network я считаю самой важной вкладкой для тестировщика. В ней видно общение клиента и сервера: какие запросы отправила страница и что ответил сервер. Вкладка записывает только то, что произошло при открытых DevTools, поэтому её открывают до действия, а потом обновляют страницу или повторяют шаг.

Каждая строка таблицы – один запрос. По умолчанию показаны название (Name), код ответа (Status), тип (Type), инициатор (Initiator), размер (Size), время (Time) и шкала Waterfall, на которой видно, в каком порядке и как долго шли запросы. Метод и версию протокола (Method, Protocol) добавляют правым щелчком по заголовку таблицы. Щелчок по строке открывает подробности: заголовки (Headers), отправленные данные (Payload) и ответ сервера (Response).

Фильтры над таблицей отбирают запросы по типу. Главный для тестировщика фильтр Fetch/XHR показывает обращения страницы к серверу за данными (в видео 2020 года он называется XHR). Doc показывает сам HTML-документ страницы, CSS и JS отбирают стили и скрипты. Картинки собраны в Img, аудио и видео в Media, шрифты в Font. В WS попадают соединения WebSocket, по которым браузер и сервер обмениваются сообщениями в реальном времени, в Manifest попадает файл манифеста веб-приложения, а Other собирает всё остальное. В нынешнем списке есть и фильтр Wasm для модулей WebAssembly.

Пример из практики: кнопка "Отправить" в форме обратной связи ничего не делает. Если открыть Network и нажать её ещё раз, в списке появляется запрос с кодом 500, а в Console красная ошибка. Коды 4xx говорят об ошибке в запросе со стороны клиента, 5xx о сбое на сервере. В баг-репорт идут шаги, адрес запроса, код ответа, отправленные данные из Payload и текст ошибки из консоли, и разработчику не нужно искать проблему вслепую.

  • Disable cache

    Отключает кэш, пока DevTools открыты. Страница загружается с сервера заново, и сохранённые раньше данные не влияют на результат проверки.

  • Preserve log

    Сохраняет список запросов при перезагрузке и переходе на другую страницу. Без этого флажка журнал очищается, и запрос, после которого страница ушла на другой адрес, пропадает. Собранный журнал выгружают в файл кнопкой Export HAR и прикладывают к баг-репорту.

  • Throttling

    Выпадающий список, где по умолчанию стоит No throttling, имитирует медленную сеть или её отсутствие (Offline), и отдельный сетевой адаптер для этого не нужен. В видео пресеты называются Fast 3G и Slow 3G, в нынешнем Chrome это Fast 4G, Slow 4G и 3G. Свою скорость задают в отдельном профиле.

Скорость, безопасность и мобильный вид

Остальные вкладки и кнопки нужны реже, но в отдельных задачах выручают. Названия даны по нынешнему Chrome.

  • Performance

    Запись работы страницы: кнопка Record and reload перезагружает страницу и снимает, что происходило при загрузке. В сводке видно, сколько времени ушло на загрузку (Loading), скрипты (Scripting), расчёт и отрисовку (Rendering, Painting), системные процессы (System) и простой (Idle). Если загрузка стала заметно дольше прежней, запись сохраняют в файл и прикладывают к баг-репорту, а разработчик открывает её у себя и видит ту же картину. В нынешнем Chrome панель при открытии сразу показывает метрики Core Web Vitals текущей страницы: LCP, CLS и INP.

  • Privacy and security

    В видео эта панель называется Security, новое название у неё с Chrome 134. Она показывает, защищено ли соединение по HTTPS, и даёт открыть сертификат. Стоит проверить, не загружает ли сайт данные с других серверов по незащищённому HTTP: для платёжных и личных данных это риск. О таком ресурсе сообщают разработчику или уточняют у аналитика, разрешено ли это требованиями.

  • Lighthouse

    В видео эта панель не разбирается. Она проверяет страницу и выдаёт отчёт с оценками производительности, доступности, соответствия лучшим практикам и SEO, и к каждой оценке прилагается список замечаний. При первом знакомстве со страницей отчёт подсказывает, куда смотреть.

  • Режим устройства

    Кнопка с телефоном и планшетом рядом со стрелкой выбора элемента (Ctrl+Shift+M, на macOS Cmd+Shift+M) показывает страницу в разрешении выбранного устройства, поворачивает экран и замедляет сеть. В видео выбран Pixel 2, в нынешнем списке устройства новее, а разрешение можно задать вручную. Это выручает, когда мобильной лаборатории нет, но имитирует только экран, поэтому поведение на настоящем телефоне проверяют отдельно.

  • Sensors

    Открывается через меню из трёх точек, пункты More tools и Sensors. Здесь подменяют геолокацию, как будто устройство находится в другом городе, например в Лондоне, и положение телефона в пространстве. Настоящий Android-телефон можно подключить к компьютеру по USB и открыть его страницы в DevTools через адрес chrome://inspect.

  • Пример: геолокация

    Сайт доставки еды показывает рестораны рядом с пользователем. В Sensors тестировщик подменяет координаты на другой город и проверяет, что список ресторанов и стоимость доставки сменились, а для места, куда доставки нет, появилось понятное сообщение вместо пустой страницы.

Видеоурок, шпаргалки и тренажёр

Я разбираю DevTools в четырнадцатом уроке курса "Тестировщик с нуля" на YouTube. Урок записан в 2020 году, поэтому названия панелей и пунктов на этой странице приведены по нынешнему Chrome. В бесплатном базовом курсе по тестированию теме посвящён урок "Работа с Devtools", и после теории в нём идут задания.

Шпаргалка по DevTools собирает горячие клавиши и панели на одной странице, а в её симуляторе видно, что появляется в DevTools после нажатия на элемент. Куки, кэш и хранилища браузера, которые лежат во вкладке Application, разобраны в отдельной шпаргалке. В тренажёре нужно открыть DevTools на странице с заданием и найти в них ответ на вопрос.

Курсы по теме

Вопросы и ответы

Как открыть DevTools в Chrome?

Клавишей F12 или сочетанием Ctrl+Shift+I, на macOS Cmd+Option+I. Можно и щёлкнуть правой кнопкой по элементу страницы и выбрать "Просмотреть код": панель откроется сразу на HTML этого элемента.

Какие вкладки DevTools нужны тестировщику?

Чаще всего Network, Console и Elements. Network показывает запросы к серверу, их коды и ответы, Console показывает ошибки JavaScript, а Elements разметку и стили элемента. В отдельных задачах пригодятся Performance для скорости, Privacy and security для проверки HTTPS, Lighthouse и режим устройства для мобильной вёрстки.

Что делать, если в консоли красная ошибка?

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

Как проверить сайт на медленном интернете?

Во вкладке Network открыть список No throttling и выбрать медленный профиль, например 3G, или Offline, чтобы посмотреть, как страница ведёт себя без сети. Такой же список есть в режиме устройства, а свою скорость можно задать в отдельном профиле.

Можно ли в DevTools проверить мобильную версию сайта?

Вёрстку можно: режим устройства (Ctrl+Shift+M) показывает страницу в разрешении выбранного телефона и поворачивает экран. Это имитация экрана в настольном браузере, поэтому поведение на настоящем телефоне проверяют отдельно.

Сохраняются ли изменения из Elements на сайте?

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

Посмотреть программы курсов

Программа каждого курса открыта целиком: видны все модули, уроки и число шагов.

Все курсы

Здесь используются cookies: без них сайт не работает, и по ним видно, откуда о платформе узнают.Cookies нужны для входа и учёта переходов. Подробнее