bencher run CLI 子命令


bencher run 是最受欢迎的 CLI 子命令。 它被用来运行基准测试并报告结果。 因此,它是最复杂的子命令之一。 本页面将解释可以传递给 bencher run 的选项,标志和参数。

bencher run [OPTIONS] [COMMAND] [ARGUMENTS...]

基准命令

bencher run 的第一个参数是可选的基准命令。 这是将被执行的命令,用以调用您的基准测试环节。 也可以通过设置 BENCHER_CMD 环境变量来指定。 默认情况下,这个命令在一个 shell 中执行, 可以通过 --shell--flag 选项来配置。 其输出由一个 基准测试适配器 解析, 可以使用 --adapter 选项来设置。 然而,如果基准测试装置输出到一个文件,则必须同时使用 --file 选项 来指定输出文件路径。 如果您希望跟踪输出文件的大小(即二进制大小)而不是其内容, 则使用 --file-size 选项来指定输出文件路径。

如果您更希望不在 shell 中执行命令,您可以使用 --exec 标志,或者简单地将额外的命令参数作为 bencher run 的附加参数提供。

Shell 表单:

Terminal window
bencher run "bencher mock"

Exec 表单:

Terminal window
bencher run bencher mock

使用 --iter 选项,可以多次运行基准命令, 并且可以使用 --fold 选项将这些结果折叠成一个结果。 如果任何迭代失败,则除非设置了 --allow-failure 标志, 整个命令都被视为失败。

如果没有指定基准命令但指定了 --file 选项, 那么 bencher run 将只读取指定的输出文件路径。 类似地,如果没有指定基准命令但指定了 --file-size 选项, 那么 bencher run 将只读取给定文件路径处文件的大小。 如果没有指定基准命令、--file 选项 或 --file-size 选项, 那么 bencher run 将改为从 stdin 读取。 这允许您将另一个命令的输出保存到文件中或者管道传输到 bencher run

Options

--project <项目>


必须设置 --project 选项或 BENCHER_PROJECT 环境变量 为已经存在的项目的 slug 或 UUID。 如果两者都被定义,--project 选项优先于 BENCHER_PROJECT 环境变量。


--token <令牌>


必须设置 --token 选项或 BENCHER_API_TOKEN 环境变量为有效的 API 令牌。 如果两者都被定义,--token 选项优先于 BENCHER_API_TOKEN 环境变量。


--branch <BRANCH>

--start-point <BRANCH>

--start-point-hash <HASH>

--start-point-max-versions <COUNT>

--start-point-clone-thresholds

--start-point-reset


详见分支选择的完整概述。


--hash <HASH>


可选:40个字符的 SHA-1 提交哈希值。 如果两个报告具有相同的分支和哈希,他们将被认为是来自同一次提交。 因此,他们将有相同的分支版本号。

如果未提供,Bencher CLI会尝试查找当前的git哈希。 它首先在当前工作目录中寻找git仓库。 如果查找不成功,它会继续在其父目录中查找,并一直重试到根目录。 如果找到了git仓库,那么将会使用当前分支的HEAD git哈希。


--no-hash


可选项:不尝试寻找 git 提交哈希。 此选项与 --hash 冲突, 并覆盖其默认行为,即搜索 git 仓库。


--testbed <测试环境>


可选:可以设置 --testbed 选项或 BENCHER_TESTBED 环境变量 为已经存在的测试环境的 slug 或 UUID。 如果两者都被定义,--testbed 选项优先于 BENCHER_TESTBED 环境变量。 如果两者都未定义,则使用 localhost 作为默认测试环境。


--threshold-measure <MEASURE>

--threshold-test <TEST>

--threshold-min-sample-size <SAMPLE_SIZE>

--threshold-max-sample-size <SAMPLE_SIZE>

--threshold-window <WINDOW>

--threshold-lower-boundary <BOUNDARY>

--threshold-upper-boundary <BOUNDARY>

--thresholds-reset

--err


请参阅阈值和警报以获取完整概述。


--adapter <ADAPTER>

--average <AVERAGE>

--file <FILE>

--file-size <FILE>


请参阅 基准测试工具适配器 以获取完整的概述。


--iter <迭代次数>


可选:运行迭代的次数。默认为 1


--fold <合并>


可选:把多个结果合并为一个结果,需要设置 --iter 选项。
可能的值为:

  • min: 最小值
  • max: 最大值
  • mean: 值的平均数
  • median: 值的中位数

--backdate <返回日期时间_秒>


可选:将报告的日期时间回溯(自纪元以来的秒数)。 注:这将不会影响过去报告的顺序! 在_按时间顺序_将历史数据初始化到项目中时,这非常有用。


--allow-failure


可选:允许基准测试失败。


--format <FORMAT>


可选:最终报告的格式。 默认是 human

可能的值:

  • human:人类可读格式
  • json:JSON格式
  • html:HTML格式

--quiet


可选:安静模式,仅输出最终报告。 使用 --format 选项更改输出格式。


--github-actions <GITHUB_TOKEN>


可选:设置 GitHub API 认证令牌(例如 --github-actions ${{ secrets.GITHUB_TOKEN }})。当此选项设置后并且在 GitHub Actions 中作为拉取请求的一部分使用 bencher run 时,结果将作为评论添加到拉取请求中。否则,结果将作为 GitHub Check 评论添加到提交中。最方便的方式是使用 GitHub Actions GITHUB_TOKEN 环境变量

🐰 如果您在 GitHub Action 的 Docker 容器内运行,您需要传递以下环境变量并挂载 GITHUB_EVENT_PATH 指定的路径:

  • GITHUB_ACTIONS
  • GITHUB_EVENT_NAME
  • GITHUB_EVENT_PATH

--ci-only-thresholds


可选:仅在 分支、测试平台和度量存在阈值 的情况下将结果发布到 CI。 如果不存在阈值,则不会发布任何内容。 要求:--github-actions


--ci-only-on-alert


可选:仅在生成警报时开始将结果发布到 CI。 如果生成了警报,则所有后续结果也将被发布,即使它们不包含任何警报。 要求:--github-actions


--ci-id <ID>


可选:用于将结果发布到 CI 的自定义 ID。 默认情况下,Bencher 会自动按以下组合分割结果:项目、分支、测试平台和适配器。 当 Bencher 在同一个 CI 工作流程中针对相同的项目、分支、测试平台和适配器组合运行多次时,设置自定义 ID 会很有用。 要求:--github-actions


--ci-number <NUMBER>


可选:用于将结果发布到 CI 的问题编号。
Bencher 将尽力检测发布结果所需的 CI 问题编号。
然而,在复杂的设置中,例如在 GitHub Actions 中使用 workflow_run,这并不总是可用。
要求:--github-actions


--shell <SHELL>


可选:Shell 命令路径。 默认为类 Unix 环境中的 /bin/sh 和 Windows 中的 cmd


--flag <FLAG>


可选:Shell 命令标志。
在类似 Unix 的环境中默认为 -c,在 Windows 中默认为 /C


--exec


可选项:作为一个可执行命令而不是shell命令运行。 如果 bencher run的参数数量大于一,则默认执行此操作。


--host <URL>


可选:后端主机 URL。
默认使用 Bench Cloud:https://api.bencher.dev


--attempts <ATTEMPTS>


可选:请求重试的最大尝试次数。 默认值为10次尝试。


--retry-after <RETRY_AFTER_SECONDS>


可选:首次尝试之间的等待时间秒数(指数退避)。默认值为 1 秒。


--dry-run


可选:执行一次演练。这不会将任何数据存储到后端。报告、分支(详细信息请参见分支选择)和测试环境都不会被创建。


--help


可选:打印帮助信息。



🐰 恭喜!你已经学会了 bencher run 的基础知识!🎉


继续学习:bencher run 分支选择 ➡

🤖 该文档由 OpenAI GPT-4 自动生成。 它可能不准确并且可能包含错误。 如果您发现任何错误,请在 GitHub 上提出问题.


Published: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Thu, August 22, 2024 at 12:56:00 PM UTC