系統狀態檢查器 (SSC) 是在套件層級設定,並在各個模組之間執行。他們會執行檢查來判斷模組是否變更 且並未還原特定狀態,例如變更系統屬性 值。
SSC 主要用於確保模組編寫者不會忘記在測試後清理;但如果忘記,則可提供追蹤記錄,以便解決問題。
而次要用途就是盡可能還原原始狀態,例如: 如果鍵盤目前保持開啟,則關閉鍵盤。
系統狀態檢查器 XML 定義
<system_checker class="com.android.tradefed.suite.checker.KeyguardStatusChecker" />
<system_checker class="com.android.tradefed.suite.checker.LeakedThreadStatusChecker" />
<system_checker class="com.android.tradefed.suite.checker.SystemServerStatusChecker" />
在 Tradefed 設定 XML 的 system_checker
標記下方定義 SSC。
實作
所有智慧型購物廣告活動 (SSC) 都必須導入 ISystemStatusChecker
介面
提供了 preExecutionCheck
和 postExecutionCheck
這兩種主要方法
都會在執行每個模組的前後執行
檢查器可以只實作其中一種,也可以實作兩種,如果需要檢查模組前的狀態,並將其與模組後的狀態進行比較,則可以實作兩種。
多個範例
導入方式
目前與所交易公司之間的關聯建議每個實作項目都專注於單一檢查,以提高重複使用性。例如:
SystemServerStatusCheck
檢查期間是否在裝置上重新啟動 system_server
程序
測試套件執行在 postExecutionCheck
中,系統會呼叫 deviceSoftRestarted
。
NativeDevice
檢查 system_server
程序是否已重新啟動。
每項作業都會傳回
StatusCheckerResult
、
控管團隊可判斷是否要提供其他資訊,例如錯誤報告
。
CTS 中的定義在哪裡?
CTS 系統狀態檢查器會在 /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml 中定義。
如何找出檢查工具失敗情形
根據預設,系統檢查工具故障時,只會顯示在記錄和錯誤報告中
已擷取用於叫用的例項,其名稱採用下列格式
bugreport-checker-post-module-<module name>.zip
。
您可以在這裡瞭解錯誤報告的產生模組後,
您可以將 --report-system-checkers
選項設為 true
,讓系統檢查器將自身回報為測試失敗。這會導致測試執行作業顯示為失敗,失敗原因為狀態檢查器的特定檢查。