路由表檢查工具

路由表檢查工具會檢查路由器回傳的路由參數是否與預期相符。此工具也可用於檢查路徑重定向、路徑重寫或主機重寫是否與預期相符。

用法
router_check_tool [-t <string>] [-c <string>] [-d] [-p] [–] [–version] [-h] <未標記的組態字串>
-t <string>, –test-path <string>

工具組態 JSON 檔案的路徑。工具組態 JSON 檔案的 schema 可以在 組態 中找到。工具組態輸入檔案指定網址(由授權和路徑組成)和預期的路由參數值。其他參數(例如額外標頭)是可選的。

Schema:工具中的所有內部 schema 都基於 proto3

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

路由器組態檔案(YAML 或 JSON)的路徑。路由器組態檔案的 schema 可以在 組態 中找到,且組態檔案的副檔名必須反映其檔案類型(例如,JSON 使用 .json,YAML 使用 .yaml)。

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

以二進位 proto 格式寫入測試結果的檔案路徑。如果檔案已存在,將會嘗試覆寫它。驗證結果的 schema 可以在 proto3 中找到。

-d, –details

顯示詳細的測試執行結果。第一行表示測試名稱。

--only-show-failures

顯示失敗測試的測試結果。如果設定了 details 旗標,則會省略通過測試的測試名稱。

-f, --fail-under

表示路由測試覆蓋率的百分比值,如果低於此值,則執行應該失敗。

--covall

啟用綜合程式碼覆蓋率百分比計算,其中考慮了所有可能的斷言。顯示遺失的測試。

--disable-deprecation-check

停用 RouteConfiguration proto 的棄用檢查。

--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 proto 訊息寫入檔案。如果提供了 --only-show-failures 旗標,則只會將失敗的測試案例寫入檔案。

建置

此工具包含在 工具映像檔 中。

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