路由表检查工具

路由表检查工具用来检查经过路由器匹配返回的路由参数值是否符合预期。 本工具还可以用来检查路径重定向、路径重写、或主机重写是否符合预期。

用法
router_check_tool [-t <string>] [-c <string>] [-d] [-p] [–] [–version] [-h] <unlabelledConfigStrings>
-t <string>, –test-path <string>

工具的 JSON 格式配置文件路径。可以在 config 中找到工具的 JSON 格式配置文件 schema。 工具的配置文件中指定一些网址(包含权限和路径)及其预期的路由参数值。额外的参数是可选的,例如:额外的头信息。

Schema:本工具所有的内部 schema 均基于 proto3

-c <string>, –config-path <string>

v2 路由器配置文件路径(YAML 或 JSON)。可以在 config 中找到路由器的配置文件 schema,文件的扩展名必须反应其文件格式类型(例如,.json 代表 JSON 格式 .yaml 代表 YAML 格式)。

-d, –details

展示详细的测试执行结果。首行表示测试的名称。

--only-show-failures

只展示失败测试的测试结果。如果设定了 details 标志,则省略通过测试的测试名称。

-f, --fail-under

表示路由测试覆盖率的百分比值,低于该值时测试将会失败。

--covall

启用全面的代码覆盖率百分比计算,同时考虑所有可能的断言。展示缺失的测试。

--disable-deprecation-check

禁用 RouteConfiguration proto 的弃用检查项。

-h, –help

展示用法信息并退出。

输出

当测试用例结果与期望的路由参数值不符时,程序将会以状态值 EXIT_FAILURE 退出。

当测试失败时,如果设定了 --details 标志,失败测试用例的详细信息将会被打印出来。 第一个字段是预期的路由参数值。第二个字段是实际的路由参数值。第三个字段表示对比的参数名称。 下例中,除 Test_2 和 Test_5 失败以外,其余的测试都通过了。在失败的测试用例中,冲突细节将被打印出来。:

Test_1
Test_2
default other virtual_host_name
Test_3
Test_4
Test_5
locations ats cluster_name
Test_6
构建

本工具可以通过 Bazel 本地构建。:

bazel build //test/tools/router_check:router_check_tool
运行

示例

bazel-bin/test/tools/router_check/router_check_tool -c router_config.(yaml|json) -t tool_config.json --details
测试

可以通过 bazel 运行一个 bash shell 脚本进行测试。测试中通过使用不同的路由器和配置文件进行路由对比。配置文件可以在 test/tools/router_check/test/config/… 下找到。:

bazel test //test/tools/router_check/...