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()

返回调用中可用的 build 信息列表。

final getDevices()

返回调用中可用设备的列表。

File getFileFromTestArtifacts(String fileName)

从测试工件或模块工件和缓存中检索文件 将其放入映射中,供后续调用使用。

final ITestInvocationListener getInvocationListener()

返回要转发结果的原始 ITestInvocationListener

String getModuleName()
final getRealDevices()

返回 getDevices() 列表中的所有非桩设备。

String getRunName()

返回触发收集器的测试运行 mRunName 的名称。

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()

IDeviceActionReceiver 是否已停用。

final void logAssociation(String dataName, LogFile logFile)

请勿在指标收集器实现内部使用。

void onTestAssumptionFailure(DeviceMetricData testData, TestDescription test)

在测试用例失败并假设失败时的回调。

void onTestEnd(DeviceMetricData testData, currentTestCaseMetrics, TestDescription test)

测试用例结束时进行回调。

void onTestEnd(DeviceMetricData testData, currentTestCaseMetrics)

测试用例结束时进行回调。

void onTestFail(DeviceMetricData testData, TestDescription test)

测试用例失败时的回调。

void onTestModuleEnded()

允许捕获“模块已结束”事件。

void onTestModuleStarted()

允许捕获“模块已启动”事件。

void onTestRunEnd(DeviceMetricData runData, currentRunMetrics)

测试运行结束时的回调。

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)

设置是否应停用 IDeviceActionReceiver

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, testMetrics)

ERROR(/#testEnded(com.android.tradefed.result.TestDescription,Map)) 的替代方法,可用于指定结束时间 。

final void testEnded(TestDescription test, testMetrics)

报告单个测试用例的执行结束。

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, runMetrics)

报告测试运行结束。

final void testRunFailed(FailureDescription failure)

由于“FailureDescription”所述的失败情况,未能完成报告测试运行。

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)

testStarted(com.android.tradefed.result.TestDescription) 的替代方法,其中我们还指定了测试 开始,并结合 ERROR(/#testEnded(com.android.tradefed.result.TestDescription,long,Map)) 进行准确测量。

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

getBuildInfo

public final  getBuildInfos ()

返回调用中可用的 build 信息列表。

返回

getDevices

public final  getDevices ()

返回调用中可用设备的列表。

返回

getFileFromTestArtifacts

public File getFileFromTestArtifacts (String fileName)

从测试工件或模块工件和缓存中检索文件 将其放入映射中,供后续调用使用。

参数
fileName String:要在工件中查找的文件的名称。

返回
File 测试工件或模块工件中的文件。返回 null 如果未找到文件。

getInvocationListener

public final ITestInvocationListener getInvocationListener ()

返回要转发结果的原始 ITestInvocationListener

返回
ITestInvocationListener

getModuleName

public String getModuleName ()

返回
String

getRealDevices

public final  getRealDevices ()

返回 getDevices() 列表中的所有非桩设备。

返回

getRunName

public String getRunName ()

返回触发收集器的测试运行 mRunName 的名称。

返回
String mRunName,当前测试运行的名称。

init

public final ITestInvocationListener init (IInvocationContext context, 
                ITestInvocationListener listener)

使用当前上下文和转发结果的位置初始化收集器。威尔 每个实例仅调用一次,并且收集器应更新其内部 上下文和监听器。在测试运行期间,系统绝不会在之前调用 Init。

除非您知道自己在做什么,否则请勿替换。

参数
context IInvocationContext:正在进行的调用的 IInvocationContext

listener ITestInvocationListener:用于存放结果的 ITestInvocationListener

返回
ITestInvocationListener 封装原始监听器的新监听器。

抛出
DeviceNotAvailableException

invocationEnded

public final void invocationEnded (long elapsedTime)

报告调用已终止(无论是成功终止还是由于某些错误) 条件。

将由 TradeFederation 框架自动调用。

参数
elapsedTime long:调用所用的时间(以毫秒为单位)

invocationFailed

public final void invocationFailed (FailureDescription failure)

由于某些错误情况,报告不完整的调用。

将由 TradeFederation 框架自动调用。

参数
failure FailureDescription:描述失败原因的 FailureDescription

invocationFailed

public final void invocationFailed (Throwable cause)

由于某些错误情况,报告不完整的调用。

将由 TradeFederation 框架自动调用。

参数
cause Throwable:失败的 Throwable 原因

已跳过调用

public void invocationSkipped (SkipReason reason)

将调用报告为跳过

参数
reason SkipReason

invocationStarted

public final void invocationStarted (IInvocationContext context)

用于转发的调用监听器

参数
context IInvocationContext:调用的相关信息

已停用

public final boolean isDisabled ()

如果整个对象都已停用(跳过设置和拆解),则返回 True。否则为 false。

返回
boolean

isDisabledReceiver

public boolean isDisabledReceiver ()

IDeviceActionReceiver 是否已停用。

返回
boolean 如果停用,则返回 true,否则返回 false。

logAssociation

public final void logAssociation (String dataName, 
                LogFile logFile)

请勿在指标收集器实现内部使用。这纯粹是转发。

参数
dataName String:数据的名称

logFile LogFileLogFile 之前记录,应与 测试用例。

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

onTestModuleEnded

public void onTestModuleEnded ()

允许捕获“模块已结束”事件。

抛出
DeviceNotAvailableException

onTestModuleStarted

public void onTestModuleStarted ()

允许捕获“模块已启动”事件。

抛出
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 ILogSaverILogSaver

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

testEnded

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)

testEnded

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:失败的堆栈轨迹

testIgnored

public final void testIgnored (TestDescription test)

在不会运行测试时调用,通常是因为测试方法带有 org.junit.Ignore。

参数
test TestDescription:标识测试

testLog

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 方法完成为止。

testLogSaved

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() 相关联,在序列中是可选的。它仅在使用 module:基于套件的运行程序。

参数
moduleContext IInvocationContext:模块的 IInvocationContext

testRunEnded

public final void testRunEnded (long elapsedTime, 
                 runMetrics)

报告测试运行结束。FIXME:不能有两个 Map<>具有不同类型的接口 我们在这里必须使用 HashMap。

参数
elapsedTime long:设备报告的所用时间(以毫秒为单位)

runMetrics :通过 Metric 运行测试运行结束时报告的键值对。

testRunFailed

public final void testRunFailed (FailureDescription failure)

由于“FailureDescription”所述的失败情况,未能完成报告测试运行。

参数
failure FailureDescription:描述失败情况及其上下文的 FailureDescription

testRunFailed

public final void testRunFailed (String errorMessage)

由于出现严重错误,未能完成报告测试运行。

参数
errorMessage StringString,用于说明运行失败的原因。

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)

由于用户请求,报告测试运行在完成之前停止。

TODO:目前未使用,请考虑移除

参数
elapsedTime long:设备报告的所用时间(以毫秒为单位)

testSkipped(已跳过测试)

public final void testSkipped (TestDescription test, 
                SkipReason reason)

在因通常不符合预期的原因跳过测试且未执行测试时调用。 系统将尝试重新尝试这些测试,以确保正确执行。

参数
test TestDescription:标识测试

reason SkipReasonSkipReason

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:标识测试