路由表检查工具

路由表检查工具检查路由器返回的路由参数是否与预期匹配。该工具还可用于检查路径重定向、路径重写或主机重写是否与预期匹配。

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

指向工具配置 JSON 文件的路径。工具配置 JSON 文件模式位于 config 中。工具配置输入文件指定 URL(由授权机构和路径组成)以及预期的路由参数值。其他参数(例如附加标头)是可选的。

模式:工具中的所有内部模式都基于 proto3

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

指向路由器配置文件(YAML 或 JSON)的路径。路由器配置文件模式位于 config 中,配置文件扩展名必须反映其文件类型(例如,JSON 的 .json 和 YAML 的 .yaml)。

-o <string>, –output-path <string>

指向用于将测试结果写入二进制协议缓冲区的文件的路径。如果文件已存在,将尝试覆盖它。验证结果模式位于 proto3 中。

-d, –details

显示详细的测试执行结果。第一行表示测试名称。

--only-show-failures

显示失败测试的测试结果。如果设置了详细信息标志,则省略通过测试的测试名称。

-f, --fail-under

表示运行应失败的路由测试覆盖率的百分比值。

--covall

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

--disable-deprecation-check

禁用对 RouteConfiguration 协议的弃用检查。

--detailed-coverage

启用显示未覆盖的路由,适用于非全面代码覆盖率模式。

-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

如果指定了 --output-path 选项,则带有测试结果的 ValidationResult 协议缓冲区消息将被写入文件。如果提供了 --only-show-failures 标志,则仅将失败的测试用例写入文件。

构建

该工具包含在 tools image 中。

可以使用 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/...