Оптимизируйте параметры Chrome для тестирования, чтобы добиться эффекта x1.25.
🚀 Увеличьте скорость тестирования браузера с помощью оптимизации параметров Chrome 🚀
Вы хотите усовершенствовать тесты браузера и оптимизировать их скорость? Путем точной настройки параметров браузера Chrome вы можете значительно повысить производительность автоматических тестов.
Ниже приведены некоторые параметры Chrome, которые помогли мне получить улучшение x1.25:
CHROME_ARGS = {
'allow-running-insecure-content' => nil,
'autoplay-policy' => 'user-gesture-required',
'disable-add-to-shelf' => nil,
'disable-background-networking' => nil,
'disable-background-timer-throttling' => nil,
'disable-backgrounding-occluded-windows' => nil,
'disable-breakpad' => nil,
'disable-checker-imaging' => nil,
'disable-client-side-phishing-detection' => nil,
'disable-component-extensions-with-background-pages' => nil,
'disable-datasaver-prompt' => nil,
'disable-default-apps' => nil,
'disable-desktop-notifications' => nil,
'disable-dev-shm-usage' => nil,
'disable-domain-reliability' => nil,
'disable-extensions' => nil,
'disable-features' => 'TranslateUI,BlinkGenPropertyTrees',
'disable-hang-monitor' => nil,
'disable-infobars' => nil,
'disable-ipc-flooding-protection' => nil,
'disable-notifications' => nil,
'disable-popup-blocking' => nil,
'disable-prompt-on-repost' => nil,
'disable-renderer-backgrounding' => nil,
'disable-setuid-sandbox' => nil,
'disable-site-isolation-trials' => nil,
'disable-sync' => nil,
'disable-web-security' => nil,
'enable-automation' => nil,
'force-color-profile' => 'srgb',
'force-device-scale-factor' => '1',
'ignore-certificate-errors' => nil,
'js-flags' => '--random-seed=1157259157',
'disable-logging' => nil,
'metrics-recording-only' => nil,
'mute-audio' => nil,
'no-default-browser-check' => nil,
'no-first-run' => nil,
'no-sandbox' => nil,
'password-store' => 'basic',
'test-type' => nil,
'use-mock-keychain' => nil
}.map { |k, v| ["--#{k}", v].compact.join('=') }.freeze
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
driven_by :selenium, using: :headless_chrome, screen_size: [1024, 768] do |options|
options.args.concat CHROME_ARGS
end
end
Описания для каждого варианта
--allow-running-insecure-content
: отключает предупреждающее сообщение при загрузке небезопасного контента на защищенной странице, что может сэкономить время во время тестирования.
--autoplay-policy=user-gesture-required
: настраивает политику автозапуска, требующую жестов пользователя для запуска воспроизведения мультимедиа, что потенциально снижает нежелательные взаимодействия во время тестирования.
--disable-add-to-shelf
: отключает функцию «Добавить на полку», которая не нужна для автоматических тестов.
--disable-background-networking
: предотвращает фоновые сетевые задачи, концентрируя ресурсы на приоритетных задачах, имеющих отношение к тестированию.
--disable-background-timer-throttling
: отключает регулирование таймера в фоновом режиме, помогая ускорить фоновые операции во время тестов.
--disable-backgrounding-occluded-windows
: отключает фоновое отображение закрытых окон, улучшая фокус на главном окне тестирования.
--disable-breakpad
: отключает отчеты о сбоях, которые не важны для автоматического тестирования.
--disable-checker-imaging
: отключает создание изображений для проверки, уменьшая ненужную обработку изображений во время тестов.
--disable-client-side-phishing-detection
: отключает обнаружение фишинга на стороне клиента, оптимизируя проверки безопасности во время тестирования.
--disable-comComponent-extensions-with-background-pages
: отключает расширения с фоновыми страницами, сохраняя ресурсы для задач, специфичных для тестирования.
--disable-datasaver-prompt
: отключает запрос на сохранение данных, который не имеет значения для сценариев тестирования.
--disable-default-apps
: отключает приложения по умолчанию, уделяя особое внимание компонентам, необходимым для тестирования браузера.
--disable-desktop-notifications
: отключает уведомления на рабочем столе, чтобы избежать прерываний во время тестирования.
--disable-dev-shm-usage
: отключает использование файловой системы общей памяти /dev/shm, что может снизить использование памяти во время тестирования.
--disable-domain-reliability
: отключает проверки надежности домена, что потенциально ускоряет выполнение сетевых задач во время тестирования.
--disable-extensions
: отключает расширения во время тестирования, устраняя любые помехи, которые они могут вызвать.
--disable-features=TranslateUI,BlinkGenPropertyTrees
: отключает определенные функции браузера, такие как TranslateUI и BlinkGenPropertyTrees, которые могут не потребоваться для тестирования.
--disable-hang-monitor
: отключает функцию монитора зависания, что помогает избежать ненужных прерываний во время тестов.
--disable-infobars
: отключает желтую информационную панель, которая отображается, когда Chrome управляется автоматическим программным обеспечением, что упрощает процесс тестирования.
--disable-ipc-flooding-protection
: отключает защиту от переполнения IPC, потенциально улучшая производительность межпроцессного взаимодействия во время тестов.
--disable-logging
: отключает ведение журнала, чтобы повысить производительность теста и избежать ненужных записей в журнале.
--disable-notifications
: отключает уведомления браузера, избегая прерываний во время тестирования.
--disable-popup-blocking
: отключает блокировщик всплывающих окон, чтобы предотвратить вмешательство в определенные тестовые сценарии.
--disable-prompt-on-repost
: отключает подсказки при переходе на повторно опубликованную страницу, оптимизируя автоматическую навигацию.
--disable-renderer-backgrounding
: отключает фоновый режим рендеринга, что может ускорить выполнение приоритетных задач во время тестов.
--disable-setuid-sandbox
: отключает изолированную программную среду setuid, что потенциально снижает нагрузку на безопасность во время тестирования.
--disable-site-isolation-trials
: отключает пробные версии изоляции сайта, которые могут улучшить использование ресурсов во время тестирования.
--disable-sync
: отключает функцию синхронизации браузера, которая может не потребоваться во время автоматических тестов.
--disable-web-security
: отключает функции веб-безопасности, что потенциально ускоряет взаимодействие во время тестирования, но будьте осторожны при тестировании ненадежных веб-сайтов.
--enable-automation
: включает функции автоматизации, полезные для управления браузером во время автоматических тестов.
--force-color-profile=srgb
: заставляет браузер использовать цветовой профиль sRGB, оптимизируя цветопередачу во время тестирования.
--force-device-scale-factor=1
: принудительно устанавливает коэффициент масштабирования устройства равным 1, что потенциально повышает согласованность визуального тестирования.
--ignore-certificate-errors
: игнорирует ошибки сертификатов, что полезно при работе с самозаверяющими сертификатами во время тестирования.
--js-flags=--random-seed=1157259157
: устанавливает определенные флаги JavaScript со случайным начальным значением, что потенциально улучшает согласованность тестирования JavaScript.
--metrics-recording-only
: включает только запись показателей, что действительно для сбора показателей производительности во время тестирования.
--mute-audio
: отключает воспроизведение звука во время тестирования, чтобы не отвлекать звук.
--no-default-browser-check
: пропускает проверку браузера по умолчанию, оптимизируя настройку теста.
--no-first-run
: пропускает первый запуск, что полезно при повторном тестировании.
--no-sandbox
: отключает песочницу, что потенциально снижает накладные расходы во время тестирования.
--password-store=basic
: устанавливает базовое хранилище паролей, что упрощает управление паролями во время тестирования.
--test-type
: устанавливает тип теста, потенциально влияющий на поведение браузера во время тестирования.
--use-mock-keychain
: использует фиктивную связку ключей для учетных данных, повышая безопасность и избегая всплывающих окон во время тестирования.
Отказ от ответственности
Не все эти параметры могут соответствовать вашим конкретным потребностям в тестировании, поэтому важно оценить их влияние на вашу тестовую среду и поведение приложения. Удачной оптимизации! 🚀💨