Подкоманда bencher run CLI
bencher run
- самая популярная подкоманда CLI.
Она используется для запуска тестов производительности и отчетов о результатах.
Таким образом, она является одной из самых сложных подкоманд.
На этой странице будет рассказано о параметрах, флагах и аргументах, которые можно передать bencher run
.
Команда для тестирования
Первым и единственным аргументом для bencher run
является необязательная команда для тестирования.
Это команда, которая будет выполнена, вызывая вашу оснастку для тестирования.
Ее также можно установить с помощью переменной окружения BENCHER_CMD
.
Команда выполняется в оболочке, которая может быть настроена с помощью параметров --shell
и --flag
.
Ее вывод анализируется адаптером оснастки для тестирования, который можно установить с помощью параметра --adapter
.
Однако, если оснастка для тестирования выводит данные в файл, то необходимо также использовать параметр --file
для указания пути к файлу вывода.
🐰 Если ваша команда тестирования состоит из нескольких слов, вы должны заключить ее в кавычки (то есть
bencher run "bencher mock"
).
Команду для тестирования можно выполнить несколько раз с помощью параметра --iter
,
и эти результаты можно объединить в один результат с помощью параметра --fold
.
Если любой из повторов тестирования не удастся, то вся команда будет считаться неудавшейся, если не установлен флаг --allow-failure
.
Если команда тестирования не указана, но указан параметр --file
, то bencher run
будет считывать данные из пути к файлу вывода.
Если бы и команда тестирования, и параметр --file
не указаны, то bencher run
будет считывать данные из stdin
.
Это позволяет сохранять вывод другой команды в файл или передавать его в bencher run
, соответственно.
Опции
--project <PROJECT>
Вам необходимо установить либо опцию --project
, либо переменную окружения BENCHER_PROJECT
для указания ссылки или UUID уже существующего проекта.
Если оба определены, то значение опции --project
имеет приоритет перед переменной окружения BENCHER_PROJECT
.
--token <TOKEN>
Необходимо установить либо опцию --token
, либо переменную окружения BENCHER_API_TOKEN
для указания действительного API токена.
Если оба определены, то значение опции --token
имеет приоритет перед переменной окружения BENCHER_API_TOKEN
.
--branch <BRANCH>
--if-branch <IF_BRANCH>
--else-if-branch <ELSE_IF_BRANCH>
--else-branch
--endif-branch
Смотрите выбор ветки для полного обзора.
--hash <HASH>
Опционально: 40-символьный хеш SHA-1 коммита. Если два отчета имеют одинаковые ветку и хеш, они будут считаться относящимися к одному и тому же коммиту. Следовательно, у них будет один и тот же номер версии ветки.
--testbed <TESTBED>
Опционально: Можно установить либо опцию --testbed
, либо переменную окружения BENCHER_TESTBED
для указания ссылки или UUID уже существующего тестового стенда.
Если оба определены, то значение опции --testbed
имеет приоритет перед переменной окружения BENCHER_TESTBED
.
Если ни один из них не определен, то в качестве тестового стенда по умолчанию используется localhost
.
--adapter <ADAPTER>
--average <AVERAGE>
--file <FILE>
Смотрите адаптеры оснастки для тестирования для полного обзора.
--iter <ITER>
Опционально: Число повторений тестирования. По умолчанию 1
.
--fold <FOLD>
Опционально: Возможность объединения нескольких результатов в один.
Требует: установки --iter
.
Возможные значения:
min
: Минимальное значениеmax
: Максимальное значениеmean
: Среднее значениеmedian
: Медианное значение
--backdate <DATETIME_SECONDS>
Опционально: Возможность отката даты отчета (секунды со времени эпохи). Внимание: Это не повлияет на порядок предыдущих отчетов! Это полезно при начальном занесении исторических данных в проект в хронологическом порядке.
--allow-failure
Опционально: Разрешить сбой теста производительности.
--err
Опционально: Вывести ошибку при генерации оповещения. Смотрите изменения и оповещения для полного обзора.
--html
Опционально: Вывод результатов в формате HTML.
--ci-with-metrics
Необязательно: Отобразите Бенчмарк Метрики и Граничные Ограничения.
Требуется: --github-actions
--ci-only-thresholds
Опционально: Публиковать результаты в CI только при наличии порога для типа метрики, ветки и тестового стенда.
Если пороги не существуют, то ничего не будет опубликовано.
Требует: --github-actions
--ci-only-on-alert
Опционально: Начать публикацию результатов в CI только при генерации оповещения.
Если оповещение сгенерировано, то последующие результаты, даже если они не содержат оповещений, также будут опубликованы.
Требует: --github-actions
--ci-public-links
Опционально: Все ссылки должны вести на общедоступные URL-адреса, которые не требуют входа в систему.
Требуется: --github-actions
--ci-id
Опционально: Пользовательский ID для публикации результатов в CI.
По умолчанию Bencher будет автоматически интерпретировать результаты в зависимости от комбинации: Проект, Ветка, Тестовый стенд и Адаптер.
Установка пользовательского ID полезна, когда Bencher запускается несколько раз в одном и том же CI рабочем процессе для одной и той же комбинации Проект, Ветка, Тестовый стенд и Адаптер.
Требует: --github-actions
--ci-number
Опционально: Номер проблемы для публикации результатов в CI.
Bencher постарается как можно лучше определить номер проблемы CI, необходимый для публикации результатов.
Однако это не всегда доступно в сложных конфигурациях, например, при использовании workflow_run
в GitHub Actions.
Требует: --github-actions
--github-actions
Опционально: Установить токен аутентификации GitHub API (например, --github-actions ${{ secrets.GITHUB_TOKEN }}
).
Когда этот параметр установлен и bencher run
используется в GitHub Actions в рамках запроса на вытягивание,
то результаты будут добавлены к запросу на вытягивание в виде комментария.
Самый удобный способ это сделать - это переменная среды GITHUB_TOKEN
GitHub Actions.
🐰 Если вы работаете в контейнере Docker внутри GitHub Action, вам нужно передать следующие переменные окружения и монтировать путь, указанный в
GITHUB_EVENT_PATH
:
GITHUB_ACTIONS
GITHUB_EVENT_NAME
GITHUB_EVENT_PATH
--shell <SHELL>
Опционально: Путь к команде оболочки. По умолчанию - /bin/sh
в Unix-подобных средах и cmd
на Windows.
--flag <FLAG>
Опционально: Флаг команды оболочки. По умолчанию - -c
в Unix-подобных средах и /C
на Windows.
--host <HOST>
Опционально: URL бэкенд-хоста. По умолчанию - https://api.bencher.dev.
--attempts <ATTEMPTS>
Опционально: Максимальное количество попыток повторения запроса. По умолчанию - 10
.
--retry-after <RETRY_AFTER>
Опционально: Повторить запрос через указанное количество секунд (экспоненциальное отставание). По умолчанию - 1
.
--dry-run
Опционально: Выполнить пробный запуск. Это не сохранит никаких данных в бэкенде. Отчет или Ветка, как указано в выборе ветки, не будут созданы.
-h
--help
Опционально: Вывести справку.
🐰 Поздравляем! Вы изучили основы
bencher run
! 🎉