Подкоманда 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



Опционально: Все ссылки должны вести на общедоступные 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! 🎉


Продолжайте изучение: выбор ветки с bencher run

🤖 Этот документ был автоматически создан OpenAI GPT-4. Оно может быть неточным и содержать ошибки. Если вы обнаружите какие-либо ошибки, откройте проблему на GitHub.