路由表檢查工具
路由表檢查工具會檢查路由器回傳的路由參數是否與預期相符。此工具也可用於檢查路徑重定向、路徑重寫或主機重寫是否與預期相符。
- 用法
- 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/...