測試程序Tester Programs

前言大綱

以下腳本可供開發人員快速測試和除錯新波士頓動力 API 服務的不同組件。 具體來說,在編寫新服務時,可以運行這些測試來檢查服務設置中的網絡錯誤,與機器人的 api 集成,以及服務的預期功能是否完整和正確。 測試程序將顯示正在運行的特定測試用例、執行測試用例以及發生的任何警告或錯誤。

目前,有 DataAcquisitionPluginService ImageService 服務的測試程序,以及可用於除錯其他正在開發的服務的通用測試助手。

設置相依性

此範例需要安裝 bosdyn API 和客戶端,並且必須使用 python3 運行。使用 pip,可以使用以下命令安裝這些相依性:
python3 -m pip install -r requirements.txt

請注意,這些相依性僅用於運行測試程序。特定的服務示例可能具有不同的依賴關係

測試圖像服務

影像服務測試器腳本 (image_service_tester.py) 可在開發新影像服務時使用,以幫助確保該服務可以按預期進行通信和運行。

注意:在運行測試儀程序之前,請檢查相機是否已通電、已連接並且可以通信。這個程序是為了幫助調試圖像服務的問題,而不是物理相機硬件。

該腳本通過一系列測試檢查:

圖像服務註冊到機器人的目錄服務中。

可以使用 gRPC 調用與影像服務進行通信。

影像服務在首次啟動服務時以及所有測試運行後都沒有活動服務故障。

圖像服務列出了圖像源,並且正確填寫了 ImageSource 原型。

影像服務可以返回影像數據,並且正確填寫了響應原型。如果無法以平板電腦所需的一種圖像格式成功請求圖像數據,則會打印警告。

對於每個圖像源,當請求多個圖像時,每個返回的圖像都有一個新的(或至少相同的)採集時間戳。

(可選)測試影像服務與數據採集服務的集成。

要使用影像服務測試器腳本,新影像服務必須正在運行。然後,可以使用以下命令運行測試腳本:

python3 image_service_tester.py --username {USER} --password {PASSWORD} {ROBOT_IP} --service-name {SERVICE_NAME}

命令行參數 --service-name 是用於目錄註冊的影像服務的名稱。在示例圖像服務(例如網絡攝像頭示例、ricoh theta 示例)中,服務名稱由變數 DIRECTORY_NAME 在每個插件文件的頂部附近定義。

測試過程中採集的很多圖片都會保存到一個目錄中,可以通過命令行參數 --destination-folder 指定,默認為當前工作目錄。

可以提供 --verbose 命令行參數,這將允許在測試運行和失敗時將更多調試信息(例如完整的 RPC 請求和響應、有關失敗和錯誤消息的額外信息)顯示到命令行。

最後,機器人的數據採集應自動將任何目錄註冊的圖像服務與數據採集功能集成在一起。可以提供命令行參數 --check-data-acquisition 來對影像服務中可用的所有影像源運行額外的測試,以檢查該源是否在數據採集功能中列出並且可以從數據採集中成功採集服務。

測試數據採集插件

在開發新的數據採集插件服務時可以使用插件測試器腳本 (plugin_tester.py),以幫助確保該服務可以按預期進行通信和行為。該腳本通過一系列測試檢查:

數據採集插件服務註冊到機器人的目錄服務中。

可以使用 gRPC 調用與數據採集插件服務進行通信。

數據採集插件在首次啟動服務時以及所有測試運行後都沒有活動服務故障。

插件服務發布的所有數據源都可以在機器人上的數據獲取服務中使用。

所有數據源都可以使用 AcquireData RPC 獲取而不會出錯。

所有數據源最終都以 STATUS_COMPLETE 響應 GetStatus RPC。

所有數據源都保存在數據採集存儲服務中。

可以使用 CancelAcquisition RPC 成功取消所有獲取。

要使用數據採集插件服務測試器腳本,必須運行新的影像服務。然後,可以使用以下命令運行測試腳本:

python3 plugin_tester.py --username {USER} --password {PASSWORD} {ROBOT_IP} --service-name {SERVICE_NAME}

命令行參數 --service-name 是用於目錄註冊的數據採集插件服務的名稱。 在示例插件中,服務名稱由變量 DIRECTORY_NAME 在每個插件文件的頂部附近定義。

可以提供 --verbose 命令行參數,這將允許在測試運行和失敗時將更多調試信息(例如完整的 RPC 請求和響應、有關失敗和錯誤消息的額外信息)顯示到命令行。

測試期間收集的所有數據都將通過 REST 端點下載並保存到一個目錄中,該目錄可以通過命令行參數 --destination-folder 指定,默認為當前工作目錄。


參考資料

特色、摘要,Feature、Summary:

關鍵字、標籤,Keyword、Tag:

留言

這個網誌中的熱門文章

Ubuntu 常用指令、分類與簡介

iptables的觀念與使用

網路設定必要參數IP、netmask(遮罩)、Gateway(閘道)、DNS

了解、分析登錄檔 - log

Python 與SQLite 資料庫

Blogger文章排版範本

Pandas 模組

如何撰寫Shell Script

查詢指令或設定 -Linux 線上手冊 - man

下載網頁使用 requests 模組