基础设备指标收集器
public class BaseDeviceMetricCollector
extends Object
implements IMetricCollector , IDeviceActionReceiver
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) 由于某些错误情况而报告不完整的调用。 |
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, currentTestCaseMetrics, TestDescription test) onTestEnd ( DeviceMetricData testData, currentTestCaseMetrics, TestDescription test) 测试用例结束时的回调。 |
void | onTestEnd ( DeviceMetricData testData, currentTestCaseMetrics) onTestEnd ( DeviceMetricData testData, currentTestCaseMetrics) 测试用例结束时的回调。 |
void | onTestFail ( DeviceMetricData testData, TestDescription test) 测试用例失败时的回调。 |
void | onTestModuleEnded () 允许捕获模块结束事件。 |
void | onTestModuleStarted () 允许捕获模块启动事件。 |
void | onTestRunEnd ( DeviceMetricData runData, currentRunMetrics) 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) 设置是否应禁用 |
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) testEnded ( TestDescription test, long endTime, testMetrics) |
final void | testEnded ( TestDescription test, testMetrics) 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) testRunEnded (long elapsedTime, runMetrics) 报告测试运行结束。 |
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 | 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
公共构造函数
基础设备指标收集器
public BaseDeviceMetricCollector ()
公共方法
额外初始化
public void extraInit (IInvocationContext context, ITestInvocationListener listener)
投掷 | |
---|---|
| com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
获取构建信息
public finalgetBuildInfos ()
返回调用中可用的构建信息列表。
退货 | |
---|---|
获取设备
public finalgetDevices ()
返回调用中可用的设备列表。
退货 | |
---|---|
从测试工件获取文件
public File getFileFromTestArtifacts (String fileName)
从测试工件或模块工件中检索文件并将其缓存在映射中以供后续调用。
参数 | |
---|---|
fileName | String :要在工件中查找的文件的名称。 |
退货 | |
---|---|
File | 来自测试工件或模块工件的文件。如果未找到文件则返回 null。 |
获取调用监听器
public final ITestInvocationListener getInvocationListener ()
返回我们在其中转发结果的原始ITestInvocationListener
。
退货 | |
---|---|
ITestInvocationListener |
获取模块名称
public String getModuleName ()
退货 | |
---|---|
String |
获取运行名称
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 |
禁用接收器
public boolean isDisabledReceiver ()
IDeviceActionReceiver
是否被禁用。
退货 | |
---|---|
boolean | 如果禁用则返回 true,否则返回 false。 |
日志关联
public final void logAssociation (String dataName, LogFile logFile)
不要使用内部度量收集器实现。这是纯粹的转发。
参数 | |
---|---|
dataName | String : 数据的名称 |
logFile | LogFile :之前记录的LogFile ,应与测试用例关联。 |
测试假设失败
public void onTestAssumptionFailure (DeviceMetricData testData, TestDescription test)
当测试用例因假设失败而失败时的回调。
参数 | |
---|---|
testData | DeviceMetricData :保存测试用例数据的DeviceMetricData 。 |
test | TestDescription :正在进行的测试用例的TestDescription 。 |
投掷 | |
---|---|
DeviceNotAvailableException |
测试结束时
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 |
测试结束时
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 |
测试失败时
public void onTestFail (DeviceMetricData testData, TestDescription test)
测试用例失败时的回调。
参数 | |
---|---|
testData | DeviceMetricData :保存测试用例数据的DeviceMetricData 。 |
test | TestDescription :正在进行的测试用例的TestDescription 。 |
投掷 | |
---|---|
DeviceNotAvailableException |
测试运行结束时
public void onTestRunEnd (DeviceMetricData runData,currentRunMetrics)
测试运行结束时的回调。这应该是清理的时间。
参数 | |
---|---|
runData | DeviceMetricData :保存运行数据的DeviceMetricData 。将与onTestRunStart(com.android.tradefed.device.metric.DeviceMetricData) 期间的对象相同。 |
currentRunMetrics | ERROR(/#testRunEnded(long,Map)) 的当前指标映射。 |
投掷 | |
---|---|
DeviceNotAvailableException |
测试运行失败
public void onTestRunFailed (DeviceMetricData testData, FailureDescription failure)
testRunFailed 事件的回调
投掷 | |
---|---|
| com.android.tradefed.device.DeviceNotAvailableException |
DeviceNotAvailableException |
测试运行开始时
public void onTestRunStart (DeviceMetricData runData)
测试运行开始时的回调。
参数 | |
---|---|
runData | DeviceMetricData :保存运行数据的DeviceMetricData 。 |
投掷 | |
---|---|
DeviceNotAvailableException |
测试开始时
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 :对象应处于的状态。 |
设置禁用接收器
public void setDisableReceiver (boolean isDisabled)
设置是否应禁用IDeviceActionReceiver
。禁用表示不会注册到设备上接收设备动作事件。
参数 | |
---|---|
isDisabled | boolean |
设置日志保存程序
public final void setLogSaver (ILogSaver logSaver)
不要使用内部度量收集器实现。这是纯粹的转发。
参数 | |
---|---|
logSaver | ILogSaver : ILogSaver |
测试假设失败
public final void testAssumptionFailure (TestDescription test, String trace)
当原子测试标记其假定条件为 false 时调用
参数 | |
---|---|
test | TestDescription :标识测试 |
trace | String : 失败的堆栈跟踪 |
测试假设失败
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 方法完成。 |
测试日志已保存
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 。 |
测试模块结束
public final void testModuleEnded ()
报告模块运行结束。
测试模块启动
public final void testModuleStarted (IInvocationContext moduleContext)
报告模块运行的开始。此回调与testModuleEnded()
关联,并且在序列中是可选的。它仅在使用模块的运行期间使用:基于套件的运行器。
参数 | |
---|---|
moduleContext | IInvocationContext :模块的IInvocationContext 。 |
测试运行结束
public final void testRunEnded (long elapsedTime,runMetrics)
报告测试运行结束。 FIXME:我们不能有两个不同类型的 Map<> 接口,所以我们必须在这里使用 HashMap。
参数 | |
---|---|
elapsedTime | long :设备报告的经过时间,以毫秒为单位 |
runMetrics | Metric 测试运行结束时报告的键值对。 |
测试运行失败
public final void testRunFailed (FailureDescription failure)
报告测试运行由于FailureDescription
描述的故障而未能完成。
参数 | |
---|---|
failure | FailureDescription :描述故障及其上下文的FailureDescription 。 |
测试运行失败
public final void testRunFailed (String errorMessage)
报告测试运行由于致命错误而未能完成。
参数 | |
---|---|
errorMessage | String :描述运行失败原因的String 。 |
测试运行开始
public final void testRunStarted (String runName, int testCount, int attemptNumber)
报告测试运行的开始。
参数 | |
---|---|
runName | String : 测试运行名称 |
testCount | int : 测试运行中的测试总数 |
attemptNumber | int :订单号,标识同一 runName 多次运行的不同尝试。 attemptsNumber 是从 0 开始索引的,并且每次新的运行发生时都应该递增。例如,一个测试被粒度重试 3 次,它应该在同一 runName 下总共运行 4 次,并且 attemptsNumber 从 0 到 3。 |
测试运行开始
public final void testRunStarted (String runName, int testCount)
测试运行回调
参数 | |
---|---|
runName | String : 测试运行名称 |
testCount | int : 测试运行中的测试总数 |
测试运行开始
public final void testRunStarted (String runName, int testCount, int attemptNumber, long startTime)
报告测试运行的开始。
参数 | |
---|---|
runName | String : 测试运行名称 |
testCount | int : 测试运行中的测试总数 |
attemptNumber | int :订单号,标识同一 runName 多次运行的不同尝试。 attemptsNumber 是从 0 开始索引的,并且每次新的运行发生时都应该递增。例如,一个测试被粒度重试 3 次,它应该在同一 runName 下总共运行 4 次,并且 attemptsNumber 从 0 到 3。 |
startTime | long :运行开始的时间,通过System.currentTimeMillis() 测量 |
测试运行停止
public final void testRunStopped (long elapsedTime)
由于用户请求,报告测试运行在完成之前停止。
TODO:当前未使用,考虑删除
参数 | |
---|---|
elapsedTime | long :设备报告的经过时间,以毫秒为单位 |
测试开始
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() 测量 |