BaseDeviceMetricCollector (基準裝置指標收集器)
public
class
BaseDeviceMetricCollector
extends Object
implements
IDeviceActionReceiver,
IMetricCollector
java.lang.Object | |
↳ | com.android.tradefed.device.metric.BaseDeviceMetricCollector |
允許在IMetricCollector
onTestRunStart(com.android.tradefed.device.metric.DeviceMetricData)
和ERROR(/#onTestRunEnd(com.android.tradefed.device.metric.DeviceMetricData,Map))
。
摘要
欄位 | |
---|---|
public
static
final
String |
TEST_CASE_EXCLUDE_GROUP_OPTION
|
public
static
final
String |
TEST_CASE_INCLUDE_GROUP_OPTION
|
公用建構函式 | |
---|---|
BaseDeviceMetricCollector()
|
公用方法 | |
---|---|
void
|
extraInit(IInvocationContext context, ITestInvocationListener listener)
|
final
|
getBuildInfos()
傳回叫用中可用的建構資訊清單。 |
final
|
getDevices()
傳回叫用中可用的裝置清單。 |
File
|
getFileFromTestArtifacts(String fileName)
從測試構件或模組構件和快取中擷取檔案 也就是用於後續呼叫的地圖中 |
final
ITestInvocationListener
|
getInvocationListener()
傳回要轉寄結果的原始 |
String
|
getModuleName()
|
final
|
getRealDevices()
傳回 |
String
|
getRunName()
傳回觸發收集器的測試執行作業 |
final
ITestInvocationListener
|
init(IInvocationContext context, ITestInvocationListener listener)
根據目前情境和轉送結果位置初始化收集器。 |
final
void
|
invocationEnded(long elapsedTime)
回報叫用已終止 (無論成功或因某些錯誤而終止) 值。 |
final
void
|
invocationFailed(FailureDescription failure)
回報因某些錯誤條件而不完整的叫用。 |
final
void
|
invocationFailed(Throwable cause)
回報因某些錯誤條件而不完整的叫用。 |
void
|
invocationSkipped(SkipReason reason)
將叫用回報為略過 |
final
void
|
invocationStarted(IInvocationContext context)
轉送的叫用監聽器 |
final
boolean
|
isDisabled()
如果整個物件已停用,則傳回 True (略過設定與拆解)。 |
boolean
|
isDisabledReceiver()
是否停用 |
final
void
|
logAssociation(String dataName, LogFile logFile)
請勿在指標收集器導入作業中使用。 |
void
|
onTestAssumptionFailure(DeviceMetricData testData, TestDescription test)
測試案例失敗而假設失敗時的回呼。 |
void
|
onTestEnd(DeviceMetricData testData,
當測試案例結束時回呼。 |
void
|
onTestEnd(DeviceMetricData testData,
當測試案例結束時回呼。 |
void
|
onTestFail(DeviceMetricData testData, TestDescription test)
當測試案例失敗時回呼。 |
void
|
onTestModuleEnded()
允許擷取模組已結束的事件。 |
void
|
onTestModuleStarted()
允許擷取模組啟動的事件。 |
void
|
onTestRunEnd(DeviceMetricData runData,
測試執行結束時回呼。 |
void
|
onTestRunFailed(DeviceMetricData testData, FailureDescription failure)
testRunFailed 事件的回呼 |
void
|
onTestRunStart(DeviceMetricData runData)
測試執行作業開始時的回呼。 |
void
|
onTestStart(DeviceMetricData testData)
在測試案例啟動時回呼。 |
void
|
rebootEnded(ITestDevice device)
裝置重新啟動時會收到通知。 |
void
|
rebootStarted(ITestDevice device)
接收裝置重新啟動的通知。 |
final
void
|
setDisable(boolean isDisabled)
設定是否應停用該物件。 |
void
|
setDisableReceiver(boolean isDisabled)
設定是否應停用 |
final
void
|
setLogSaver(ILogSaver logSaver)
請勿在指標收集器導入作業中使用。 |
final
void
|
testAssumptionFailure(TestDescription test, String trace)
在不可部分完成的測試旗標假設條件為 false 時呼叫 |
final
void
|
testAssumptionFailure(TestDescription test, FailureDescription failure)
在不可部分完成的測試旗標假設條件為 false 時呼叫 |
final
void
|
testEnded(TestDescription test, long endTime,
|
final
void
|
testEnded(TestDescription test,
回報個別測試案例的執行結束時間。 |
final
void
|
testFailed(TestDescription test, FailureDescription failure)
回報個別測試案例的失敗情形。 |
final
void
|
testFailed(TestDescription test, String trace)
回報個別測試案例的失敗情形。 |
final
void
|
testIgnored(TestDescription test)
在測試不執行時呼叫的呼叫,通常是因為測試方法加上了 org.junit.Ignore |
final
void
|
testLog(String dataName, LogDataType dataType, InputStreamSource dataStream)
提供來自測試叫用的相關聯記錄或偵錯資料。 |
final
void
|
testLogSaved(String dataName, LogDataType dataType, InputStreamSource dataStream, LogFile logFile)
請勿在指標收集器導入作業中使用。 |
final
void
|
testModuleEnded()
回報模組的執行完畢。 |
final
void
|
testModuleStarted(IInvocationContext moduleContext)
回報執行模組的開始。 |
final
void
|
testRunEnded(long elapsedTime,
測試執行結束報表。 |
final
void
|
testRunFailed(FailureDescription failure)
由於「 |
final
void
|
testRunFailed(String errorMessage)
發生嚴重錯誤,因此無法完成報表測試。 |
final
void
|
testRunStarted(String runName, int testCount, int attemptNumber)
回報測試執行作業的開始。 |
final
void
|
testRunStarted(String runName, int testCount)
測試執行回呼 |
final
void
|
testRunStarted(String runName, int testCount, int attemptNumber, long startTime)
回報測試執行作業的開始。 |
final
void
|
testRunStopped(long elapsedTime)
由於使用者要求,報表測試在執行完畢前已停止執行。 |
final
void
|
testSkipped(TestDescription test, SkipReason reason)
測試被略過,且因非預期原因而未執行時呼叫。 |
final
void
|
testStarted(TestDescription test, long startTime)
|
final
void
|
testStarted(TestDescription test)
測試案例回呼 |
欄位
TEST_CASE_EXCLUDE_GROUP_OPTION
public static final String TEST_CASE_EXCLUDE_GROUP_OPTION
TEST_CASE_INCLUDE_GROUP_OPTION
public static final String TEST_CASE_INCLUDE_GROUP_OPTION
公用建構函式
BaseDeviceMetricCollector (基準裝置指標收集器)
public BaseDeviceMetricCollector ()
公用方法
extraInit
public void extraInit (IInvocationContext context, ITestInvocationListener listener)
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
getBuildInfos
public finalgetBuildInfos ()
傳回叫用中可用的建構資訊清單。
傳回 | |
---|---|
|
get 裝置
public finalgetDevices ()
傳回叫用中可用的裝置清單。
傳回 | |
---|---|
|
getFileFromTestArtifacts
public File getFileFromTestArtifacts (String fileName)
從測試構件或模組構件和快取中擷取檔案 也就是用於後續呼叫的地圖中
參數 | |
---|---|
fileName |
String :要在構件中查詢的檔案名稱。 |
傳回 | |
---|---|
File |
測試成果或模組構件的檔案。傳回空值 。 |
getInvocationListener
public final ITestInvocationListener getInvocationListener ()
傳回要轉寄結果的原始 ITestInvocationListener
。
傳回 | |
---|---|
ITestInvocationListener |
getModuleName
public String getModuleName ()
傳回 | |
---|---|
String |
getRunName
public String getRunName ()
傳回觸發收集器的測試執行作業 mRunName
的名稱。
傳回 | |
---|---|
String |
mRunName,目前的測試執行作業名稱。 |
初始
public final ITestInvocationListener init (IInvocationContext context, ITestInvocationListener listener)
根據目前情境和轉送結果位置初始化收集器。威爾 每個執行個體只會呼叫一次,且收集器預計將更新其內部 背景資訊和事件監聽器測試執行期間一律不會呼叫 Init。
除非您確定執行作業,否則請勿覆寫這項設定。
參數 | |
---|---|
context |
IInvocationContext :用於進行叫用的 IInvocationContext 。 |
listener |
ITestInvocationListener :要放置結果的 ITestInvocationListener 。 |
傳回 | |
---|---|
ITestInvocationListener |
內含原始事件監聽器的新事件監聽器 |
擲回 | |
---|---|
DeviceNotAvailableException |
已叫用
public final void invocationEnded (long elapsedTime)
回報叫用已終止 (無論成功或因某些錯誤而終止) 值。
將由 TradeFederation 架構自動呼叫。
參數 | |
---|---|
elapsedTime |
long :叫用的經過時間 (以毫秒為單位) |
叫用失敗
public final void invocationFailed (FailureDescription failure)
回報因某些錯誤條件而不完整的叫用。
將由 TradeFederation 架構自動呼叫。
參數 | |
---|---|
failure |
FailureDescription :說明失敗原因的 FailureDescription |
叫用失敗
public final void invocationFailed (Throwable cause)
回報因某些錯誤條件而不完整的叫用。
將由 TradeFederation 架構自動呼叫。
參數 | |
---|---|
cause |
Throwable :失敗的 Throwable 原因 |
叫用
public final void invocationStarted (IInvocationContext context)
轉送的叫用監聽器
參數 | |
---|---|
context |
IInvocationContext :叫用的相關資訊 |
已停用
public final boolean isDisabled ()
如果整個物件已停用,則傳回 True (略過設定與拆解)。否則傳回「否」。
傳回 | |
---|---|
boolean |
isDisabledReceiver
public boolean isDisabledReceiver ()
是否停用 IDeviceActionReceiver
。
傳回 | |
---|---|
boolean |
如果停用,會傳回 true,否則傳回 false。 |
記錄檔關聯
public final void logAssociation (String dataName, LogFile logFile)
請勿在指標收集器導入作業中使用。。
參數 | |
---|---|
dataName |
String :資料名稱 |
logFile |
LogFile :LogFile 之前記錄且應與
測試案例 |
onTestAssumptionFailure
public void onTestAssumptionFailure (DeviceMetricData testData, TestDescription test)
測試案例失敗而假設失敗時的回呼。
參數 | |
---|---|
testData |
DeviceMetricData :保留測試案例資料的 DeviceMetricData 。 |
test |
TestDescription :進行中的測試案例的 TestDescription 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
onTestEnd
public void onTestEnd (DeviceMetricData testData,currentTestCaseMetrics, TestDescription test)
當測試案例結束時回呼。現在應該是清理時間。
參數 | |
---|---|
testData |
DeviceMetricData :保留測試案例資料的 DeviceMetricData 。會是
與 onTestStart(com.android.tradefed.device.metric.DeviceMetricData) 期間相同的物件 |
currentTestCaseMetrics |
:傳遞至 ERROR(/#testEnded(com.android.tradefed.result.TestDescription,Map)) 的目前指標對應。 |
test |
TestDescription :進行中的測試案例的 TestDescription 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
onTestEnd
public void onTestEnd (DeviceMetricData testData,currentTestCaseMetrics)
當測試案例結束時回呼。現在應該是清理時間。
參數 | |
---|---|
testData |
DeviceMetricData :保留測試案例資料的 DeviceMetricData 。會是
與 onTestStart(com.android.tradefed.device.metric.DeviceMetricData) 期間相同的物件 |
currentTestCaseMetrics |
:傳遞至 ERROR(/#testEnded(com.android.tradefed.result.TestDescription,Map)) 的目前指標對應。 |
擲回 | |
---|---|
DeviceNotAvailableException |
onTestFail
public void onTestFail (DeviceMetricData testData, TestDescription test)
當測試案例失敗時回呼。
參數 | |
---|---|
testData |
DeviceMetricData :保留測試案例資料的 DeviceMetricData 。 |
test |
TestDescription :進行中的測試案例的 TestDescription 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
onTestRunEnd
public void onTestRunEnd (DeviceMetricData runData,currentRunMetrics)
測試執行結束時回呼。現在應該是清理時間。
參數 | |
---|---|
runData |
DeviceMetricData :保存執行作業資料的 DeviceMetricData 。維持不變
物件,就像在 onTestRunStart(com.android.tradefed.device.metric.DeviceMetricData) 期間一樣。 |
currentRunMetrics |
:傳遞至 ERROR(/#testRunEnded(long,Map)) 的目前指標對應。 |
擲回 | |
---|---|
DeviceNotAvailableException |
onTestRunFailed
public void onTestRunFailed (DeviceMetricData testData, FailureDescription failure)
testRunFailed 事件的回呼
擲回 | |
---|---|
|
com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
onTestRunStart
public void onTestRunStart (DeviceMetricData runData)
測試執行作業開始時的回呼。
參數 | |
---|---|
runData |
DeviceMetricData :保存執行作業資料的 DeviceMetricData 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
onTestStart
public void onTestStart (DeviceMetricData testData)
在測試案例啟動時回呼。
參數 | |
---|---|
testData |
DeviceMetricData :保留測試案例資料的 DeviceMetricData 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
已重啟
public void rebootEnded (ITestDevice device)
裝置重新啟動時會收到通知。
注意:接收器應避免在此回呼期間重新啟動。若重新啟動, 已忽略。
參數 | |
---|---|
device |
ITestDevice :重新啟動的 ITestDevice 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
重新啟動
public void rebootStarted (ITestDevice device)
接收裝置重新啟動的通知。
注意:接收器應避免在此回呼期間重新啟動。若重新啟動, 已忽略。
參數 | |
---|---|
device |
ITestDevice :重新啟動的 ITestDevice 。 |
擲回 | |
---|---|
DeviceNotAvailableException |
設定停用
public final void setDisable (boolean isDisabled)
設定是否應停用該物件。「停用」表示設定和拆解步驟 應略過可用於將物件預設為停用狀態 建構函式中設定。
參數 | |
---|---|
isDisabled |
boolean :物件應置於的狀態。 |
setDisableReceiver
public void setDisableReceiver (boolean isDisabled)
設定是否應停用 IDeviceActionReceiver
。停用後
未註冊接收裝置動作事件的裝置。
參數 | |
---|---|
isDisabled |
boolean |
setLogSaver
public final void setLogSaver (ILogSaver logSaver)
請勿在指標收集器導入作業中使用。。
參數 | |
---|---|
logSaver |
ILogSaver :ILogSaver |
testAssumptionFailure
public final void testAssumptionFailure (TestDescription test, String trace)
在不可部分完成的測試旗標假設條件為 false 時呼叫
參數 | |
---|---|
test |
TestDescription :識別測試 |
trace |
String :失敗的堆疊追蹤 |
testAssumptionFailure
public final void testAssumptionFailure (TestDescription test, FailureDescription failure)
在不可部分完成的測試旗標假設條件為 false 時呼叫
參數 | |
---|---|
test |
TestDescription :識別測試 |
failure |
FailureDescription :FailureDescription ,說明失敗及其背景資訊。 |
測試結束
public final void testEnded (TestDescription test, long endTime,testMetrics)
ERROR(/#testEnded(com.android.tradefed.result.TestDescription,Map))
的替代方式,可以指定結束時間
搭配 testStarted(com.android.tradefed.result.TestDescription, long)
即可取得準確的測量結果。
參數 | |
---|---|
test |
TestDescription :識別測試 |
endTime |
long :測試結束的時間,透過 System.currentTimeMillis() 進行評估 |
testMetrics |
:發送的指標的 ERROR(/Map) |
測試結束
public final void testEnded (TestDescription test,testMetrics)
回報個別測試案例的執行結束時間。
如果未叫用 testFailed(TestDescription, FailureDescription)
,這項測試就會通過。同時傳回任何鍵/值
指標,這些是在測試案例執行期間產生的指標。
參數 | |
---|---|
test |
TestDescription :識別測試 |
testMetrics |
:發送的指標的 ERROR(/Map) |
測試失敗
public final void testFailed (TestDescription test, FailureDescription failure)
回報個別測試案例的失敗情形。
這個值會在 testStarted 和 testEnded 之間呼叫。
參數 | |
---|---|
test |
TestDescription :識別測試 |
failure |
FailureDescription :FailureDescription ,說明失敗及其背景資訊。 |
測試失敗
public final void testFailed (TestDescription test, String trace)
回報個別測試案例的失敗情形。
這個值會在 testStarted 和 testEnded 之間呼叫。
參數 | |
---|---|
test |
TestDescription :識別測試 |
trace |
String :失敗的堆疊追蹤 |
已忽略測試
public final void testIgnored (TestDescription test)
在測試不執行時呼叫的呼叫,通常是因為測試方法加上了 org.junit.Ignore
參數 | |
---|---|
test |
TestDescription :識別測試 |
測試記錄
public final void testLog (String dataName, LogDataType dataType, InputStreamSource dataStream)
提供來自測試叫用的相關聯記錄或偵錯資料。
呼叫必須在 ERROR(/ITestInvocationListener#invocationFailed(Throwable))
之前或
ERROR(/ITestInvocationListener#invocationEnded(long))
TradeFederation 架構會自動呼叫這個方法,並提供主機記錄 裝置 logcat (如適用)
參數 | |
---|---|
dataName |
String :資料的 String 描述性名稱。例如:「device_logcat」。注意事項
dataName 可在每次叫用中重複。實作者必須能處理
以相同的 dataName 呼叫多次呼叫 |
dataType |
LogDataType :資料的 LogDataType |
dataStream |
InputStreamSource :資料的 InputStreamSource 。實作者應呼叫
createInputStream 開始讀取資料,並確保結果關閉
完成後的 InputStream。呼叫端應確保資料來源仍保留
可以在 testLog 方法完成前開放存取。 |
testLog 已儲存
public final void testLogSaved (String dataName, LogDataType dataType, InputStreamSource dataStream, LogFile logFile)
請勿在指標收集器導入作業中使用。。
參數 | |
---|---|
dataName |
String :資料的 String 描述性名稱。例如:「device_logcat」。注意事項
dataName 可在每次叫用中重複。實作者必須能處理
以相同的 dataName 呼叫多次呼叫 |
dataType |
LogDataType :資料的 LogDataType |
dataStream |
InputStreamSource :資料的 InputStreamSource 。實作者應呼叫
createInputStream 開始讀取資料,並確保結果關閉
完成後的 InputStream。 |
logFile |
LogFile :包含已儲存檔案中繼資料的 LogFile 。 |
testModuleEnded
public final void testModuleEnded ()
回報模組的執行完畢。
testModuleStarted
public final void testModuleStarted (IInvocationContext moduleContext)
回報執行模組的開始。這個回呼與 testModuleEnded()
相關聯,在序列中是選用選項。只會在使用
模組:套件型執行器
參數 | |
---|---|
moduleContext |
IInvocationContext :模組的 IInvocationContext 。 |
testRunEnded
public final void testRunEnded (long elapsedTime,runMetrics)
測試執行結束報表。FIXME:我們不能有兩張地圖<>產生不同類型的介面 我們一定要在這裡使用 HashMap
參數 | |
---|---|
elapsedTime |
long :裝置回報的經過時間 (以毫秒為單位) |
runMetrics |
:使用 Metric 的測試執行結束時回報的鍵/值組合。 |
testRunFailed
public final void testRunFailed (FailureDescription failure)
由於「FailureDescription
」指出失敗,因此無法完成報表測試。
參數 | |
---|---|
failure |
FailureDescription :FailureDescription ,說明失敗及其背景資訊。 |
testRunFailed
public final void testRunFailed (String errorMessage)
發生嚴重錯誤,因此無法完成報表測試。
參數 | |
---|---|
errorMessage |
String :String 說明執行失敗的原因。 |
testRunStarted
public final void testRunStarted (String runName, int testCount, int attemptNumber)
回報測試執行作業的開始。
參數 | |
---|---|
runName |
String :測試執行作業名稱 |
testCount |
int :測試執行作業中的測試總數 |
attemptNumber |
int :訂單號碼,可識別同一個 runName 的不同嘗試次數
執行多次tryNumber 為 0 的索引,且每次都會遞增
新的執行作業發生時例如:每次執行精細的重試測試 3 次,總共應該有 4 次
在同一個 runName 下執行,且 tryNumber 介於 0 到 3 之間。 |
testRunStarted
public final void testRunStarted (String runName, int testCount)
測試執行回呼
參數 | |
---|---|
runName |
String :測試執行作業名稱 |
testCount |
int :測試執行作業中的測試總數 |
testRunStarted
public final void testRunStarted (String runName, int testCount, int attemptNumber, long startTime)
回報測試執行作業的開始。
參數 | |
---|---|
runName |
String :測試執行作業名稱 |
testCount |
int :測試執行作業中的測試總數 |
attemptNumber |
int :訂單號碼,可識別同一個 runName 的不同嘗試次數
執行多次tryNumber 為 0 的索引,且每次傳回
新的工作也會開始執行例如:執行精細的重試 3 次測試,總共應執行 4 次測試
同一個 runName,且 tryNumber 介於 0 到 3 之間。 |
startTime |
long :執行作業開始的時間,透過 System.currentTimeMillis() 測量 |
testRunStopped
public final void testRunStopped (long elapsedTime)
由於使用者要求,報表測試在執行完畢前已停止執行。
待辦事項:目前未使用,建議移除
參數 | |
---|---|
elapsedTime |
long :裝置回報的經過時間 (以毫秒為單位) |
測試略過
public final void testSkipped (TestDescription test, SkipReason reason)
測試被略過,且因非預期原因而未執行時呼叫。 系統會嘗試重新嘗試這些測試,以便執行正確的作業。
參數 | |
---|---|
test |
TestDescription :識別測試 |
reason |
SkipReason :SkipReason |
testStarted
public final void testStarted (TestDescription test, long startTime)
testStarted(com.android.tradefed.result.TestDescription)
的替代方式,我們會一併指定測試的時間
再加上 ERROR(/#testEnded(com.android.tradefed.result.TestDescription,long,Map))
,才能取得準確的測量結果
參數 | |
---|---|
test |
TestDescription :識別測試 |
startTime |
long :測試開始的時間,透過 System.currentTimeMillis() 進行測量 |
testStarted
public final void testStarted (TestDescription test)
測試案例回呼
參數 | |
---|---|
test |
TestDescription :識別測試 |