首批通过分布式安全可靠测评,为关键业务系统打造
测试命令组
更新时间:2026-07-23 19:55:35
obd 有多级命令,您可以在每个层级中使用 -h/--help 选项查看子命令的帮助信息。同样的,当各层级的子命令执行报错时,您亦可使用 -v/--verbose 查看命令的详细执行过程。本文将介绍 obd 中测试命令的使用。
注意
使用本节命令执行测试时,待测试的集群需是被 obd 管理的集群,否则 obd 无法获取集群的信息。obd 部署的集群默认由 obd 管理,非 obd 部署的集群可执行接管操作进行接管,具体操作可参见 使用 obd 接管集群。
obd test mysqltest
使用该命令可对 OcecanBase 数据库或 ODP 组件的指定节点执行 mysqltest。
执行 mysqltest 需要 OBClient,请先确认您已安装 OBClient。
说明
本节主要对该命令进行介绍,具体使用请参考 mysqltest 使用说明。
obd test mysqltest <deploy name> [--test-set <test-set>] [flags]
# example
obd test mysqltest test --all --auto-retry
参数 deploy name 为部署名,可以理解为配置文件的别名。
选项说明见下表:
| 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|---|
| --component | 否 | string | 默认为空 | 待测试的组件名。候选项为 obproxy、obproxy-ce、oceanbase 和 oceanbase-ce。为空时,按 obproxy、obproxy-ce、oceanbase、oceanbase-ce 的顺序进行检查。检查到组件存在则不再遍历,使用命中的组件进行后续测试。 |
| --test-server | 否 | string | 默认为指定的组件下服务器中的第一个节点 | 待测试的机器,后跟 yaml 文件中 servers 对应的 name 值,若 servers 后未配置 name 值,则使用 ip 值,必须是指定的组件下的某个节点名。 |
| --user | 否 | string | admin | 执行测试的用户名,一般情况下不需要修改。 |
| --password | 否 | string | admin | 执行测试的用户密码。 |
| --database | 否 | string | test | 执行测试的数据库。 |
| --mysqltest-bin | 否 | string | /u01/obclient/bin/mysqltest | mysqltest 二进制文件路径。 |
| --obclient-bin | 否 | string | obclient | OBClient 二进制文件路径。 |
| --test-dir | 否 | string | ./mysql_test/t | mysqltest 所需的 test-file 存放的目录。test 文件找不到时会尝试在 obd 内置中查找。 |
| --test-file-suffix | 否 | string | .test | mysqltest 所需的 test-file 的后缀。 |
| --result-dir | 否 | string | ./mysql_test/r | mysqltest 所需的 result-file 存放的目录。result 文件找不到时会尝试在 obd 内置中查找。 |
| --result-file-suffix | 否 | string | .result | mysqltest 所需的 result-file 的后缀。 |
| --record | 否 | bool | false | 仅记录 mysqltest 的执行结果作为 record-file。 |
| --record-dir | 否 | string | ./record | 记录 mysqltest 的执行结果所存放的目录。 |
| --record-file-suffix | 否 | string | .record | 记录 mysqltest 的执行结果的后缀。 |
| --tmp-dir | 否 | string | ./tmp | mysqltest 的临时目录,存放执行测试过程中产生的一些临时文件。 |
| --var-dir | 否 | string | ./var | 将在该目录下创建 log 目录,并将 log 目录作为 --log-dir 参数传入 mysqltest。 |
| --test-set | 否 | string | 无 | test case 数组。多个 case 使用英文逗号(,)间隔。 |
| --exclude | 否 | string | 无 | 需要除外的 test case 数组。多个 case 中使用英文逗号(,)间隔。 |
| --test-pattern | 否 | string | 无 | test 文件名匹配的正则表达式。所有匹配表达式的 case 将覆盖 test-set 选项。 |
| --suite | 否 | string | 无 | suite 数组。一个 suite 下包含多个 test,可以使用英文逗号(,)间隔。 |
| --suite-dir | 否 | string | ./mysql_test/test_suite | 存放 suite 目录的目录。suite 目录找不到时会尝试在 obd 内置中查找。 |
| --all | 否 | bool | false | 执行 --suite-dir 下全部的 case。--suite-dir 参数为存放 suite 目录的目录。 |
| --need-init | 否 | bool | false | 执行 init sql 文件。一个新的集群要执行 mysqltest 前可能需要执行一些初始化文件,比如创建 case 所需要的账号和租户等。默认不开启。 |
| --init-sql-dir | 否 | string | ./ | init sql 文件所在目录。sql 文件找不到时会尝试在 obd 内置中查找。 |
| --init-sql-files | 否 | string | 需要 init 时执行的 init sql 文件数组。英文逗号(,)间隔。不填时,如果需要 init,obd 会根据集群配置执行内置的 init。 |
|
| --auto-retry | 否 | bool | false | 失败时自动重部署集群进行重试。 |
| --psmall | 否 | bool | false | 执行 psmall 模式的 case。 |
| --slices | 否 | int | 默认为空 | 需要执行的 case 将被分成的组数。 |
| --slice-idx | 否 | int | 默认为空 | 指定当前分组 id。 |
| --slb-host | 否 | string | 默认为空 | 指定软负载均衡中心。 |
| --exec-id | 否 | string | 默认为空 | 指定执行 id。 |
| --case-filter | 否 | string | ./mysql_test/filter.py | filter.py 文件,维护了需要过滤的 case。 |
| --reboot-timeout | 否 | int | 0 | 重启的超时时间。 |
| --reboot-retries | 否 | int | 5 | 重启失败重试次数。 |
| --collect-all | 否 | bool | false | 是否收集组件日志。 |
| --log-dir | 否 | string | 默认为 $--var-dir/log | mysqltest 的日志存放路径。 |
| --log-pattern | 否 | string | *.log | 收集日志文件名匹配的正则表达式,命中的文件将被收集。 |
| --case-timeout | 否 | int | 3600 | mysqltest 单个测试的超时时间。 |
| --disable-reboot | 否 | bool | false | 在执行测试的过程中不再重启。 |
| --collect-components | 否 | string | 默认为空 | 用来指定要进行日志收集的组件,多个组件以英文逗号(,)间隔。 |
| --init-only | 否 | bool | false | 为 true 时表示仅执行 init SQL。 |
obd test sysbench
使用该命令可对 OcecanBase 数据库或 ODP 组件的指定节点执行 Sysbench。
执行 Sysbench 需要 OBClient 和 ob-sysbench,请确认您已安装 OBClient 和 ob-sysbench。
说明
本节主要对该命令进行介绍,具体使用请参考 OceanBase 数据库 Sysbench 测试。
本节以在线安装 ob-sysbench 为例,若您的机器无法连接外部网络,建议使用可连接外部网络的机器访问 链接,根据系统版本选择对应版本下载后上传到执行测试的机器,并使用 rpm 命令进行解压安装。
obd test sysbench <deploy name> [flags]
# example
obd test sysbench test --tenant=sysbench --script-name=oltp_read_only.lua,oltp_read_write.lua --table-size=1000000 --threads=32,64,128,256 --rand-type=uniform
参数 deploy name 为部署名,可以理解为配置文件的别名。
选项说明见下表:
| 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|---|
| --component | 否 | string | 默认为空 | 待测试的组件名。候选项为 obproxy、obproxy-ce、oceanbase 和 oceanbase-ce。为空时,按 obproxy、obproxy-ce、oceanbase、oceanbase-ce 的顺序进行检查。检查到组件存在则不再遍历,使用命中的组件进行后续测试。 |
| --test-server | 否 | string | 默认为指定的组件下服务器中的第一个节点 | 待测试的机器,后跟 yaml 文件中 servers 对应的 name 值,若 servers 后未配置 name 值,则使用 ip 值,必须是指定的组件下的某个节点名。 |
| --user | 否 | string | root | 执行测试的用户名。 |
| --password | 否 | string | 默认为空 | 执行测试的用户密码。 |
| -t/--tenant | 否 | string | test | 执行测试的租户名,请确保该租户已经创建。 |
| --database | 否 | string | test | 执行测试的数据库。 |
| --obclient-bin | 否 | string | obclient | OBClient 二进制文件路径。 |
| --sysbench-bin | 否 | string | sysbench | sysbench 二进制文件路径。 |
| --script-name | 否 | string | point_select.lua | 要执行的 sysbench 脚本名,支持配置多个脚本名,多个脚本名之间使用英文逗号(,)分隔。 |
| --sysbench-script-dir | 否 | string | /usr/sysbench/share/sysbench | sysbench 脚本存放目录。 |
| --tables | 否 | int | 30 | 初始化表的数量。 |
| --table-size | 否 | int | 20000 | 每张表初始化的数据数量。 |
| --threads | 否 | int | 16 | 启动的线程数量,支持配置多个值,多个值之间使用英文逗号(,)分隔。 |
| --time | 否 | int | 60 | 测试运行时间,单位:秒。设置为 0 时表示不限制时间。 |
| --interval | 否 | int | 10 | 运行期间日志打印时间间隔,单位:秒。为 0 时表示不打印日志 |
| --mysql-ignore-errors | 否 | string | 1062 | 报错时忽略指定的错误码,多个错误码以逗号间隔,取值为“all”时表示忽略全部。 |
| --events | 否 | int | 0 | 最大请求数量,定义数量后可以不需要 --time 选项。 |
| --rand-type | 否 | string | special | 访问数据时使用的随机生成函数。取值可以为 special、uniform、gaussian 或 pareto。 |
| ---skip-trx | 否 | string | 空 | 在只读测试中打开或关闭事务。 |
| --percentile | 否 | int | 空 | 延迟统计信息中要计算的百分比。取值范围为 [1,100],为 0 时表示禁用百分比计算。 |
| -S/--skip-cluster-status-check | 否 | bool | false | 开启时跳过集群状体检查,允许测试的时候有节点处于离线状态。 |
| -O/--optimization | 否 | int | 1 | 自动调优等级。设置为 0 表示关闭自动调优;设置为 1 时会修改不需要重启生效的调优参数;设置为 2 时会修改所有的调优参数,并根据需要重启集群使调优生效。 |
obd test tpch
使用该命令可对 OcecanBase 数据库或 ODP 组件的指定节点执行 TPC-H。
执行 TPC-H 需要 OBClient 和 obtpch,请确认您已安装 OBClient 和 obtpch。
TPC-H 需要指定一台 OceanBase 目标服务器作为执行对象。在执行 TPC-H 测试前,obd 会将测试需要的数据文件传输到指定机器的指定目录下,这些文件可能会比较大,请确保机器上足够的磁盘空间。当然您也可以提前在目标机器上准备好数据文件,再通过 --dt/--disable-transfer 选项关闭传输。
说明
本节主要对该命令进行介绍,具体使用请参考 OceanBase 数据库 TPC-H 测试。
本节以在线安装 obtpch 为例,若您的机器无法连接外部网络,建议使用可连接外部网络的机器访问 链接,根据系统版本选择对应版本下载后上传到执行测试的机器,并使用 rpm 命令进行解压安装。
obd test tpch <deploy name> [flags]
# example
obd test tpch test --tenant=tpch -s 100 --remote-tbl-dir=/tmp/tpch100
参数 deploy name 为部署名,可以理解为配置文件的别名。
选项说明见下表:
| 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|---|
| --component | 否 | string | 默认为空 | 待测试的组件名。候选项为 obproxy、obproxy-ce、oceanbase 和 oceanbase-ce。为空时,按 obproxy、obproxy-ce、oceanbase、oceanbase-ce 的顺序进行检查。检查到组件存在则不再遍历,使用命中的组件进行后续测试。 |
| --test-server | 否 | string | 默认为指定的组件下服务器中的第一个节点 | 待测试的机器,后跟 yaml 文件中 servers 对应的 name 值,若 servers 后未配置 name 值,则使用 ip 值,必须是指定的组件下的某个节点名。 |
| --user | 否 | string | root | 执行测试的用户名。 |
| --password | 否 | string | 默认为空 | 执行测试的用户密码。 |
| -t/--tenant | 否 | string | test | 执行测试的租户名,请确保该租户已经创建。 |
| --database | 否 | string | test | 执行测试的数据库,如没有创建,测试程序会自动创建。 |
| --obclient-bin | 否 | string | obclient | OBClient 二进制文件路径。 |
| --dbgen-bin | 否 | string | /usr/tpc-h-tools/tpc-h-tools/bin/dbgen | dbgen 二进制文件路径。 |
| --dss-config | 否 | string | /usr/tpc-h-tools/tpc-h-tools/ | dists.dss 所在目录。 |
| -s/--scale-factor | 否 | int | 1 | 自动生成测试数据的规模,单位:G。 |
| --tmp-dir | 否 | string | ./tmp | 执行 tpch 时的临时目录。自动生成的测试数据,自动调优的 sql 文件,执行测试 sql 的日志文件等都会存在这里。 |
| --ddl-path | 否 | string | 默认为空 | ddl 文件路径或目录。为空时,obd 会使用自带的 ddl 文件。 |
| --tbl-path | 否 | string | 默认为空 | tbl 文件路径或目录。为空时,使用 dbgen 生成测试数据。 |
| --sql-path | 否 | string | 默认为空 | sql 文件路径或目录。为空时,obd 会使用自带的 sql 文件。 |
| --remote-tbl-dir | 否 | string | 默认为空 | 目标 OBServer 节点上存放 tbl 的目录,绝对路径,请保证 OBServer 节点的启动用户对该目录有读写权限。在不开启 --test-only 的情况下该选项为必填项。 |
| --test-only | 否 | bool | false | 不执行初始化,仅执行测试 SQL。 |
| --dt/--disable-transfer | 否 | bool | false | 禁用传输。开启后将不会把本地 tbl 传输到远程 remote-tbl-dir 下,而是直接使用目标机器 remote-tbl-dir 下的 tbl 文件。 |
| -S/--skip-cluster-status-check | 否 | bool | false | 开启时跳过集群状体检查,允许测试的时候有节点处于离线状态。 |
| -O/--optimization | 否 | int | 1 | 自动调优等级。设置为 0 表示关闭自动调优;设置为 1 时会修改不需要重启生效的调优参数;设置为 2 时会修改所有的调优参数,并根据需要重启集群使调优生效。 |
| --parallel | 否 | int | max_cpu * unit_count | 用于设置加载数据的并行度。默认值中的 max_cpu 为租户的最大 CPU 个数,unit_count 为测试租户所用资源池中资源单元的个数。 |
| --direct-load | 否 | bool | false | 控制是否开启旁路导入。 |
obd test tpcc
使用该命令可对 OceanBase 数据库或 ODP 组件的指定节点执行 TPC-C。
执行 TPC-C 需要 OBClient 和 obtpcc,请确认您已安装 OBClient 和 obtpcc。
说明
本节主要对该命令进行介绍,具体使用请参考 OceanBase 数据库 TPC-C 测试。
本节以在线安装 obtpcc 为例,若您的机器无法连接外部网络,建议使用可连接外部网络的机器访问 链接,根据系统版本选择对应版本下载后上传到执行测试的机器,并使用 rpm 命令进行解压安装。
obd test tpcc <deploy name> [flags]
# example
obd test tpcc test --tenant=tpcc --warehouses 10 --run-mins 1
参数 deploy name 为部署名,可以理解为配置文件的别名。
选项说明见下表:
| 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|---|
| --component | 否 | string | 默认为空 | 待测试的组件名。候选项为 obproxy、obproxy-ce、oceanbase 和 oceanbase-ce。为空时,按 obproxy、obproxy-ce、oceanbase、oceanbase-ce 的顺序进行检查。检查到组件存在则不再遍历,使用命中的组件进行后续测试。 |
| --test-server | 否 | string | 默认为指定的组件下服务器中的第一个节点 | 待测试的机器,后跟 yaml 文件中 servers 对应的 name 值,若 servers 后未配置 name 值,则使用 ip 值,必须是指定的组件下的某个节点名。 |
| --user | 否 | string | root | 执行测试的用户名。 |
| --password | 否 | string | 默认为空 | 执行测试的用户密码。 |
| -t/--tenant | 否 | string | test | 执行测试的租户名,请确保该租户已经创建。 |
| --database | 否 | string | test | 执行测试的数据库,如没有创建,测试程序会自动创建。 |
| --obclient-bin | 否 | string | obclient | OBClient 二进制文件路径。 |
| --java-bin | 否 | string | java | Java 二进制文件路径。 |
| --tmp-dir | 否 | string | ./tmp | 执行 tpcc 时的临时目录。自动生成的配置文件、自动调优的 sql 文件、执行测试输出文件等都会存在这里。 |
| --bmsql-dir | 否 | string | 默认为空 | 指定 BenchmarkSQL 的目录。只有在自行编译安装 BenchmarkSQL 时需要指定,obtpcc 不需要指定此项。 |
| --bmsql-jar | 否 | string | 默认为空 | 指定 BenchmarkSQL 主 jar 路径。为空的时候,如果未指定 BenchmarkSQL 的目录,则使用 obtpcc 的默认安装路径,如果指定了 BenchmarkSQL 地址,则使用 <bmsql-dir>/dist 下的 jar。 |
| --bmsql-libs | 否 | string | 默认为空 | 如果指定了 BenchmarkSQL 地址,则使用 <bmsql-dir>/lib 以及 <bmsql-dir>/lib/oceanbase 下的 jar,obtpcc 不需要指定此项。 |
| --bmsql-sql-dir | 否 | string | 默认为空 | TPC-C 的 sql 文件的路径。为空时,obd 会使用自行生成的 sql 文件。 |
| --warehouses | 否 | int | 10 | TPC-C 测试集的货仓数量。如果没有传入,则为 OceanBase 集群 CPU 数 * 20 。 |
| --load-workers | 否 | int | 默认为空 | 构造测试数据集时的并发数量。如果没有传入则在 单机 CPU 数 与 租户可用内存(G)/2 中取小值。 |
| --terminals | 否 | int | 默认为空 | TPC-C 测试时的虚拟终端数量。如果没有传入,则在 OceanBase 集群 CPU 数 * 15 与 货仓数量 * 10 中取小值。 |
| --run-mins | 否 | int | 10 | TPC-C 测试执行的时间,单位:min。 |
| --test-only | 否 | bool | false | 不再构造数据,仅执行测试。 |
| -S/--skip-cluster-status-check | 否 | bool | false | 开启时跳过集群状体检查,允许测试的时候有节点处于离线状态。 |
| -O/--optimization | 否 | int | 1 | 自动调优等级。设置为 0 表示关闭自动调优;设置为 1 时会修改不需要重启生效的调优参数;设置为 2 时会修改所有的调优参数,并根据需要重启集群使调优生效。 |