Android 開發人員和測試工程師可以使用 OmniLab ATS 測試工具,透過使用者介面執行標準 Android 測試套件,例如 Android Compatibility Test Suite (CTS)。這個工具可做為各種測試架構 (例如 Trade Federation (TF) 和 Google Mobly) 的網頁介面,讓您在設定最少的情況下,在一組測試裝置上執行 CTS 和多裝置測試,並建立排程持續執行測試。
設定 OmniLab ATS
本節說明如何安裝及設定 OmniLab ATS。
OmniLab ATS 會使用下列位置的原始碼:
- OmniLab ATS 原始碼
- TradeFed Cluster 原始碼
安裝 OmniLab ATS
請遵守所執行測試套件的軟硬體需求。
如要瞭解 CTS 的相關規定,請前往 source.android.com。
OmniLab ATS 沒有額外的硬體需求,但建議以 CTS 主機需求做為起點。
安裝 OmniLab ATS 的方法有兩種:
使用安裝程式安裝
在 Ubuntu 20.04 以上版本中,安裝程式會安裝並設定執行 OmniLab ATS 所需的所有程式和資源。
如要使用安裝程式,請按照下列步驟操作:
執行安裝程式:
curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
執行
mtt version
,查看已安裝的 OmniLab ATS CLI 版本。
手動安裝
安裝 Docker
按照安裝 Docker Community Edition (CE) 的操作說明,在 Linux 機器上安裝 Docker。
你可能需要重新啟動終端機視窗,或登出再重新登入,權限變更才會生效。
安裝 Python 3
OmniLab ATS CLI 已針對 Python 3.7 至 3.11 版進行驗證。
如果是 Ubuntu 16.04 或更早版本,請先新增 Python 3 的存放區,方法如下:
執行下列指令:
sudo add-apt-repository ppa:deadsnakes/ppa
從來源建構及安裝存放區。
如要安裝 Python 3,請執行下列指令:
sudo apt-get update
sudo apt install python3 python3-distutils
如要安裝特定 Python 3 版本 (例如 3.10),請改為執行下列指令:
sudo apt-get update
sudo apt install python3.10 python3.10-distutils
取得 OmniLab ATS CLI
啟動 OmniLab ATS
使用下列指令啟動 OmniLab ATS:
mtt start
第一次啟動 UI 時,可能需要幾分鐘才會顯示。CLI 會顯示網頁網址,供您在瀏覽器中存取 UI。根據預設,網頁網址為 localhost:8000
。如有需要,您可以在啟動時使用 --port
標記變更預設連接埠。
如有較新版本,可以更新至目前版本。如要查看最新版本,請參閱「版本資訊」。
如要更新至目前版本,請執行:
mtt start --force_update
如要停止應用程式,請執行下列指令:
mtt stop
如要查看其他指令的清單,請使用:
mtt --help
備份及還原資料庫
如要備份 OmniLab ATS 資料庫,請停止應用程式並執行下列指令,將目前的資料庫備份到主目錄中名為 mtt-backup.tar
的 TAR 檔案:
docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar cvf /out/mtt-backup.tar ."
如要還原,請在啟動應用程式前執行下列指令:
docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar xvf /out/mtt-backup.tar"
設定精靈
首次安裝並執行 OmniLab ATS 後,設定精靈會引導您完成幾個步驟,以便根據環境自訂工具。您稍後可以透過「設定」頁面重新設定這裡所做的任何變更。
還原設定備份
如果您有備份的設定檔,且來自其他 OmniLab ATS 主機,可以按一下「上傳檔案」按鈕上傳檔案,複製該主機修改的任何設定。
圖 1. 還原設定備份。
設定預設服務帳戶
您可以設定 服務帳戶,供 OmniLab ATS 存取資源 (例如 Google Cloud Storage、Google 雲端硬碟) 時預設使用。如要驗證服務帳戶,請按一下「Upload Service Account Key」(上傳服務帳戶金鑰),然後選取服務帳戶的 JSON 金鑰檔案。
圖 2. 設定服務帳戶。
服務帳戶通過驗證後,頁面右上角會顯示帳戶電子郵件地址。如要變更服務帳戶,請按一下帳戶名稱,移除目前的預設帳戶,然後上傳新的服務帳戶金鑰。
圖 3. 變更服務帳戶。
匯入設定集
設定集是執行測試套件的設定組合,包括相關裝置動作和建構管道。設定集會託管在特定的 Google Cloud Storage (GCS) bucket 中。使用 Google 帳戶驗證 GCS 建構管道後,您會看到所有可用的設定集清單。
選取要新增至 Test Station 主機的任何設定集,然後按一下「匯入所選項目」。
圖 4. 匯入設定集。
包含 Wi-Fi 設定
部分 CTS 測試需要裝置連線至 Wi-Fi 無線基地台。如要選取 Wi-Fi 網路,請輸入 Wi-Fi SSID 和選用的 Wi-Fi PSK。
圖 5. Wi-Fi 無線基地台設定。
完成設定精靈後,頁面會重新載入,並套用新設定。
連線至裝置
如要使用裝置進行測試,必須啟用 USB 偵錯功能。如要啟用偵錯功能,請按照下列步驟操作:
按照「啟用開發人員選項和偵錯功能」一文中的說明操作。
如果您打算使用預先載入自訂 ADB 金鑰的 Android 測試版本,請將自訂
.adb_key
檔案放在~/.android/
目錄下。檔案會自動載入並傳遞至 ADB,以便在裝置刷機後自動啟用 USB 偵錯功能 (適用於執行這些建構版本的裝置)。
使用 USB 將裝置連線至主機。
重新整理網頁介面後,裝置會在 OmniLab ATS 裝置分頁中顯示。您也可以在這個分頁中查看裝置狀態。
圖 6. 正在連線至裝置。
裝置狀態包括:
- 可用:裝置已連線,可以執行測試。
- 已分配 - 裝置已連線並正在執行測試。每部裝置一次只能執行一項測試,因此裝置必須先完成目前的測試,才能執行新的測試。
進行測試
選取測試
OmniLab ATS 隨附一組預先組合的 CTS 設定。如要執行其中一項測試,請前往「測試套件」分頁,然後點選所選測試的「執行測試」。
圖 7. 選取測試。
如要編輯或新增測試,請參閱「新增測試」。
設定測試執行
編輯要用於這項特定測試執行的參數。大多數參數都會預先填入所選測試設定中定義的值。
您可以使用預設值完成這個步驟,但可以視需要變更任何參數,例如「Max Retry」和「Command」。
圖 8. 設定測試執行作業。
測試執行參數如下:
- 名稱:要執行的測試套裝組合名稱。
- 執行次數 - 安排時間後,這項測試執行的次數。測試執行作業是使用 Trade Federation 安排,如果容量足夠,最多可平行執行 20 次測試。
- 重試次數上限:如果至少有一項測試失敗,測試執行作業的重試次數上限。通常會將此值設為 4 到 6 次重試,以完整執行 CTS,處理不穩定的測試。
- 佇列逾時 - 如果測試執行作業在「已加入佇列」狀態中停留過久,系統會自動取消。請在此指定取消前的等待時間。預設值為 24 小時。
指令:執行測試套件的指令。您可以在這裡輸入其他指令列引數。舉例來說,在 CTS 8.1 中執行特定模組的指令如下:
cts-suite -m ShortModuleName
重試指令 - 用於重試測試套件的指令。您可以在這裡新增其他指令列引數。舉例來說,如要只重試 CTS 8.1 中的特定模組,請使用:
cts --retry 0 -m ShortModuleName
重試引數可能與初始指令提供的引數不同,因此請在所選測試套件的官方網站上查看支援的參數。
先前的測試執行 - 如要重新執行先前的測試執行:
本機 - 如果是在目前主機上啟動執行作業,請輸入查看測試執行作業詳細資料時看到的測試執行作業 ID。
圖 9.本機先前測試執行。
遠端:如果是在其他主機上啟動執行作業,請選取「遠端」,按一下「上傳測試結果檔案」,然後從本機儲存空間選取檔案,即可上傳測試結果檔案。
圖 10. 遠端執行先前的測試。
選取裝置
按一下核取方塊,選取要分配來執行測試套件的裝置。分片數量應會自動變更,以符合所選裝置數量。
圖 11. 選取裝置。
如要依裝置序號以外的屬性選取裝置,可以手動輸入「裝置規格」。舉例來說,如要選取產品名稱為「bramble」的 3 部裝置,請輸入下列內容:
product:bramble;product:bramble;product:bramble
支援的屬性如下:
- build_id
- device_serial
- device_type
- 主機名稱
- 產品
- product_variant
- sim_state
所有選取的裝置都必須處於「可用」狀態,才能執行測試, 且執行測試時,所有裝置都會切換至「已分配」狀態。測試執行作業等待裝置可用時,會處於「已加入佇列」狀態。
新增裝置動作
裝置動作是可在每次測試執行前執行的指令碼。部分裝置動作已預先設定,例如閃爍和重新啟動。如要建立新的裝置動作,請參閱「建立新的裝置動作」。
圖 12. 裝置動作。
如要在測試執行中新增裝置動作,請按一下「新增動作」,選取要新增動作的核取方塊,然後按一下「新增動作」。裝置動作會依序執行。如要重新排序動作,請拖曳動作。
圖 13. 重新排序動作。
設定測試資源
測試資源是執行測試所需的檔案。舉例來說,執行 CTS 需要 android-cts*.zip
檔案,而為裝置刷機則需要提供建構映像檔。
測試套件 ZIP 檔案的下載網址應預設為提供給合作夥伴的 Google 雲端硬碟連結。如要選取其他檔案,請按一下「瀏覽」。 在彈出式視窗中,您可以輸入檔案下載連結、使用已通過驗證的建構管道中的檔案,或是上傳本機儲存空間中的檔案。
圖 14. 測試資源。
以下是透過網頁網址選取測試資源的彈出式視窗。你可以輸入下載網址連結,然後按一下「選取」按鈕確認選取。
圖 15. 測試資源選取器 - 網頁網址。
如果已將資源上傳至 Google 雲端硬碟、Google Cloud Storage (GCS) 或其他管道,也可以前往特定管道的分頁,然後選取資源。以下是從 Google 雲端硬碟選取資源的範例。
圖 16. 測試資源選取器 - Google 雲端硬碟。
除了選取檔案,您也可以在「檔案名稱」欄位中使用萬用字元。如要參閱說明文件,請按這裡。
圖 17. 測試資源選取器 - 支援萬用字元模式。
您也可以從 OmniLab ATS 的本機檔案儲存空間選取檔案。您可以將檔案上傳至這個儲存空間,或直接使用本機檔案和目錄。
圖 18. 測試資源選取器 - 本機檔案儲存空間。
新增重新執行設定
您可以安排在主要執行完成後開始重播,並載入結果,但可以使用不同的裝置、動作或資源。
圖 19. 新增重新執行設定。
開始測試執行
輸入測試執行所需的資訊後,請按一下「開始測試執行」。如果所有資訊都有效,系統就會開始執行測試,並將您重新導向至一個頁面,查看測試執行的詳細資料和進度。
圖 20. 開始測試執行。
建立測試計畫
測試計畫可用於定期建立測試執行作業。舉例來說,每天下午 5 點執行 CTS 9.0。如要建立新的測試計畫,請按一下「建立新的測試計畫」。
圖 21. 建立測試計畫。
設定測試計畫
輸入測試計畫名稱和要新增的任何標籤。然後選取要使用的時間表。
- 手動 - 只有在使用者點選測試計畫清單頁面中的「執行測試計畫」時,測試計畫才會建立測試執行。
- 週期性:測試計畫會根據所選週期性排程,自動排定測試執行作業。例如,每天下午 5 點安排測試執行。
- 自訂 - 測試計畫會根據輸入的 cron 運算式自動排定測試執行時間。舉例來說,如要將測試執行作業排定在每天下午 5:00 執行,Cron 運算式為
0 17 * * *
。
圖 22. 設定測試計畫。
新增測試套件
按一下「+ Add test run configuration」,即可新增要透過測試計畫排定的測試套件。從「名稱」下拉式選單中選取測試套件,然後按一下「下一步」。然後選取要執行測試的裝置,並按一下「新增設定」。每個測試計畫可新增多項設定。
圖 23. 設定測試執行作業。
新增裝置動作
新增要在每次測試執行前執行的裝置動作。 詳情請參閱「新增裝置動作」。
圖 24. 新增裝置動作。
設定測試資源
將測試資源新增至測試計畫,與新增至個別測試執行作業相同。詳情請參閱「設定測試資源」。
圖 25. 設定測試資源。
查看測試執行作業
測試執行作業清單
在「測試執行」頁面中,查看排定的測試執行清單。按一下「查看」,即可查看測試執行的詳細資料。
您也可以在篩選列中輸入字串,然後按下 Enter 鍵來篩選清單。如要使用多個篩選器,請以半形逗號分隔。篩選器會傳回任何資料欄中包含確切文字 (不含子字串比對) 的所有資料列,但「狀態」和「建立時間」除外。
如果篩選器為空白,系統會傳回所有資料列。目前無法篩選值為空白的資料列。
圖 26. 測試執行清單。
測試執行作業詳細資料
您可以在這裡查看測試執行的詳細資料,例如狀態、記錄和結果。
圖 27. 測試執行詳細資料。
測試執行作業狀態
測試執行的進度會顯示在「狀態」部分。如果系統顯示相關訊息 (例如下載進度、取消原因或錯誤訊息),也會顯示在這裡。
圖 28. 測試執行作業狀態。
測試執行狀態包括:
- 待處理:正在下載必要資源。
- 已加入佇列:裝置可用時,即可執行測試。
- 執行中:測試正在已分配的裝置上執行。
- 已完成:測試已完成並回報結果。
- 已取消 - 使用者取消測試,或系統在嘗試尋找可用裝置時逾時。
- 錯誤 - 發生錯誤,導致測試無法執行。
取消測試執行作業
如果測試尚未完成,可以按一下「取消」,然後在確認對話方塊中按一下「是」來取消測試。如果測試執行作業在 Queued 狀態的時間超過 queue_timeout_seconds 欄位,系統也會自動取消作業。如果測試執行作業處於「執行中」狀態,取消作業可能需要幾分鐘才會生效。
圖 29. 取消測試執行作業。
測試執行結果
測試執行完畢後,系統會收集並顯示結果。如要查看其他詳細資料,請按一下每次執行的箭頭。按一下「查看輸出檔案」,即可查看收集到的測試構件,例如 test_result.xml
和 test_result_failures.html
。
圖 30. 測試執行結果。
您可以在「記錄」分頁中查看即時主機和 Tradefed 記錄。
圖 31. 「記錄」分頁。
個別模組的結果會顯示在「測試結果」分頁中。
圖 32. 「測試結果」分頁。
如要下載做為測試資源的檔案,請按一下「Test Resources」分頁中的「Open」。
圖 33. 「測試資源」分頁。
如要查看測試執行的詳細資料 (例如 create_time),請前往「設定」分頁。
圖 34. 「設定」分頁。
進階功能
管理設定檔
OmniLab ATS 會使用以 YAML 編寫的設定檔,載入預先定義的選項,例如測試、建構管道和裝置動作。以下是設定檔範例:
// example_file.yaml
tests:
- id : android.cts.9_0.arm
name: CTS 9.0 (ARM)
test_resource_defs:
- name: android-cts.zip
default_download_url: https://dl.google.com/dl/android/cts/android-cts-9.0_r7-linux_x86-arm.zip
test_resource_type: TEST_PACKAGE
command: cts
env_vars:
- name: TF_PATH
value: ${TF_WORK_DIR}/android-cts/tools:${TF_WORK_DIR}/android-cts/testcases
- name: LD_LIBRARY_PATH
value: ${TF_WORK_DIR}/android-cts/lib:${TF_WORK_DIR}/android-cts/lib64
setup_scripts:
output_file_patterns:
- android-cts/logs/latest/.*
- android-cts/results/latest/.*\.html
- android-cts/results/latest/compatibility_result\..*
- android-cts/results/latest/logo.png
- android-cts/results/latest/test_result.xml
result_file: test_result.xml
java_properties:
- name: CTS_ROOT
value: ${TF_WORK_DIR}
context_file_dir: android-cts/results/
context_file_pattern: '[\d_\.]+\.zip'
retry_command_line: retry --retry 0
runner_sharding_args: --shard-count ${TF_SHARD_COUNT}
build_channels:
- id: google_drive
name: Google Drive
provider_name: Google Drive
device_actions:
- id: flash
name: Flash
test_resource_defs:
- name: bootloader.img
test_resource_type: DEVICE_IMAGE
- name: radio.img
test_resource_type: DEVICE_IMAGE
- name: img.zip
test_resource_type: DEVICE_IMAGE
tradefed_target_preparers:
- class_name: com.android.tradefed.targetprep.RunHostCommandTargetPreparer
option_values:
- name: work-dir
values:
- ${TF_WORK_DIR}
- name: host-setup-command
values:
- adb -s $SERIAL reboot-bootloader
- fastboot -s $SERIAL flash bootloader bootloader.img
- fastboot -s $SERIAL flash radio radio.img
- fastboot -s $SERIAL reboot-bootloader
- fastboot -s $SERIAL -w update img.zip
- adb -s $SERIAL wait-for-device
- name: host-cmd-timeout
values:
- 10m
設定 OmniLab ATS 執行個體時,您可以將設定匯出為檔案,與其他使用者共用。如要匯出,請前往「設定」頁面,然後按一下右上方的「匯出」。
圖 35. 管理設定檔。
下載設定檔後,請與其他使用者共用該檔案。 他們可以按一下「Import」並選取設定檔,將設定檔新增至 OmniLab ATS 執行個體。
建立新的裝置動作
裝置動作可用於自動化裝置設定程序。動作是指在每次執行測試前,於測試執行的每個裝置上執行的指令碼,包括重試前。如要查看可用裝置動作清單,請前往「設定」頁面,然後按一下「裝置動作」分頁標籤。系統已預先設定多項裝置動作,例如重新啟動和刷機。
圖 36. 「裝置動作」分頁標籤。
新增裝置動作
按一下「新增裝置動作」。
圖 37. 新裝置動作按鈕。
輸入名稱和說明。
圖 38. 裝置動作名稱。
按一下「新增目標準備人員」。
輸入「Trade Federation」目標準備人員的完整類別名稱,例如
com.android.tradefed.targetprep.RunHostCommandTargetPreparer
。圖 39. 新增目標準備器。
如要查看可用的目標準備工具清單,請參閱 com.android.tradefed.targetprep 參考資料。
圖 40. 目標準備人員清單。
新增要搭配目標準備工具使用的任何選項。如要查看可用選項,請在 Android 開放原始碼計畫中,檢查每個目標準備工具的原始碼:targetprep
圖 41. 動作選項範例。
如要新增選項,請按一下「新增目標準備人員選項」,然後輸入必要值。
圖 42. 動作指令範例。
定義執行裝置動作所需的測試資源,例如要刷入的建構映像檔。如要新增資源定義,請按一下「新增測試資源」,然後填寫必填欄位。如果您知道檔案位置,可以按一下「瀏覽」,提供預設下載網址。如果目標準備人員接受目錄做為測試資源,請選取「解壓縮」。然後在暫時工作目錄下指定相對目的地目錄,以及要解壓縮的檔案名稱。如未提供任何檔案名稱,系統會從測試資源解壓縮所有檔案。
圖 43. 動作測試資源。
按一下「更新」。
圖 44. 儲存變更。
管理測試
編輯測試
如要編輯已儲存的測試,請前往「測試」頁面,然後在要修改的測試列中按一下「編輯」。變更測試設定後,請按一下「更新」。
圖 45. 編輯測試。
新增測試
如要新增測試,請前往「測試」頁面,然後按一下「建立新測試」。輸入適當資訊,然後按一下「建立」。
圖 46. 建立測試。
圖 47. 複製測試。
匯出主機設定
設定主機後,您可以將主機設定匯出至檔案。您可以將這個檔案上傳至其他主機,複製儲存的設定。
如要匯出主機設定,請前往「設定」頁面,然後按一下右上角的「匯出」。
圖 48. 匯出主機設定。
如要匯入主機設定檔,請前往「設定」頁面,然後按一下右上角的「匯入」。
圖 49. 匯入主機設定。
使用本機檔案和目錄
從 R11 版開始,OmniLab ATS 會自動存取 $HOME/.ats_storage
目錄中的檔案。將檔案複製或移動到該目錄,然後在排定測試執行時間時,從「本機檔案」分頁選取檔案。
cp /path/to/file $HOME/.ats_storage
圖 50. 從 $HOME/.ats_storage
目錄選取檔案。
您可以使用 --mount_local_path
標記,將其他目錄掛接到本機檔案儲存空間。
mtt start --mount_local_path=/path/to/dir1 --mount_local_path=/path/to/dir2:renamed_dir2
圖 51. 本機檔案儲存空間中裝載的其他目錄。
啟用多主機模式
透過多主機模式,使用者可以透過單一 ATS 控制器主機,管理多個 ATS 工作站主機上的裝置和測試。
圖 52. 多主機模式架構。
如要啟動 ATS 控制器,請使用下列指令:
mtt start --operation_mode=ON_PREMISE
確認控制器可透過
http://${CONTROLLER_HOSTNAME}:8000
存取。如要啟動工作人員,請使用下列指令:
mtt start --control_server_url=http://CONTROLLER_HOSTNAME:8000 --operation_mode=ON_PREMISE
如果網路不允許主機彼此通訊,您必須按照下方更進階的設定說明,在 ATS 工作人員上操作。
使用 SSH 通道連線這兩部主機。選取主要和檔案伺服器連接埠,例如 9000 和 9006。
ssh -L ATS_PORT:localhost:8000 -L FS_PORT:localhost:8006 CONTROLLER_HOSTNAME
設定並啟動 ATS。
DOCKER_GATEWAY_IP_ADDRESS=$(ip -4 addr show dev docker0 | grep -Eo 'inet [.0-9]+/' | grep -Eo '[.0-9]+')
socat tcp-listen:ATS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:ATS_PORT &
socat tcp-listen:FS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:FS_PORT &
mtt start --control_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:ATS_PORT \ --control_file_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:FS_PORT \ --operation_mode=ON_PREMISE
檔案清理工具
檔案清除器是每小時執行的 Cron 工作,會根據使用者定義的設定清除檔案。ATS 有兩項預設設定,可封存測試執行結果及刪除暫存檔。本指南說明如何自訂政策和設定,有效管理檔案。
政策
政策會定義要對檔案或目錄執行的作業,以及選取目標的條件。下表列出可用的作業:
作業類型 | 參數 |
---|---|
ARCHIVE | remove_file :如果為 true ,請在封存後移除檔案。 |
DELETE |
條件是根據檔案屬性和系統資訊而定。下表列出可用的條件:
條件類型 | 說明 | 參數 |
---|---|---|
LAST_MODIFIED_TIME | 依檔案的上次修改日期和時間篩選檔案。 | ttl :支援各種時間運算式,例如 10m 、2h 、7 days 、4w 。如要瞭解支援的格式,請參閱 pytimeparse 。 |
LAST_ACCESS_TIME | 依上次存取日期和時間篩選檔案。 | 與 LAST_MODIFIED_TIME 相同。 |
NAME_MATCH | 使用規則運算式依名稱篩選檔案。 | pattern :規則運算式,例如 [a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\.zip 可比對結果的 ZIP 檔案。 |
SYSTEM_AVAILABLE_SPACE | 根據系統的可用空間觸發動作。 | threshold :當可用空間低於門檻時觸發動作,例如 200 (B)、200KB 、200MB 、200GB 、2TB 。 |
圖 53. 新增檔案清除政策。
設定
設定會將一或多項政策與特定目錄合併。系統會根據定義的政策,處理指定目錄中的檔案和目錄。系統會按照政策在設定中的顯示順序套用政策。
所有目標目錄都必須位於 /data
目錄下。如果設定將目標目錄指定為 logs
,系統會將其解讀為 /data/logs
。
圖 54. 編輯檔案清除器設定。
重設
按一下「重設設定」,即可將檔案清理工具設定還原為預設狀態。這項操作會清除所有自訂項目。
圖 55. 重設檔案清理工具設定。
支援
錯誤報告
您的意見有助於改善 OmniLab ATS 的開發作業,我們很期待收到您的想法!如需最新版本資訊,請參閱「OmniLab ATS 版本資訊」。如要回報錯誤或提供建議,請提出錯誤報告。合作夥伴應透過合作夥伴管道回報錯誤或提供建議。