Chromium Chronicle #20: Сравнительный анализ тестовых систем

Эпизод 20: Джон Чен, Белвью, Вашингтон (апрель 2021 г.)
Предыдущие серии

Скорость — один из четырех основных принципов Chrome. Добавление тестов — это простой способ предотвратить снижение производительности и помочь улучшить производительность с течением времени. Хорошие тесты имеют быстрый цикл итерации, могут обнаружить снижение производительности гораздо раньше, чем UMA, и отлично подходят для измерения производительности новой функции.

В лаборатории регулярно проводятся тесты. При обнаружении регрессии bisect автоматически находит виновного CL и назначает ошибку владельцу CL.

Тесты Chrome объединяют последовательности взаимодействий с веб-страницами (так называемые истории) с измерениями производительности. Подобные случаи сгруппированы в тестовые наборы. Новые тесты обычно вписываются в один из существующих наборов :

  • Здоровье системы
  • Загрузка
  • Память
  • Рендеринг
  • Власть
  • Запускать
  • Время выполнения V8
  • СМИ
  • ВебRTC
  • Нажимать
  • Мигание Перф.

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

Вы можете охватить большинство новых случаев тестирования производительности в Chrome, добавив новую историю, используя существующую метрику в одном из существующих протоколов. Вы также можете собирать дополнительные трассировки и добавлять дополнительные показатели к существующим тестам или передавать браузеру дополнительные флаги.

Используйте Blink Perf для единичных случаев, которые не подходят для других привязей. В Blink Perf вы можете измерять события трассировки на отдельных страницах.

Старайтесь, чтобы ваши контрольные истории были простыми и включали только минимальный набор взаимодействий, необходимых для завершения вашего сценария. Если тестовый пример сложен, его может быть сложно автоматизировать или он может быть ненадежным.

Ограничьте количество тестов наименьшим количеством, охватывающим наиболее важные варианты использования. Поддерживать инфраструктуру бенчмаркинга дорого. Список поддерживаемого оборудования см. в разделе «Устройства Chrome Speed» .

Существует несколько способов измерения производительности. Тесты на основе телеметрии контролируют Chrome из внешнего процесса, и это не всегда обеспечивает необходимый уровень контроля. В качестве альтернативы тесты на основе gtest позволяют тестовому коду использовать тот же процесс, что и код Chrome. Вы также можете рассмотреть другие инструменты производительности, например использование UMA для измерения производительности на устройствах пользователей, а не в лаборатории.

Хотите узнать больше о бенчмаркинге Chrome? Свяжитесь с telemetry@chromium.org.

Дополнительные ресурсы