Tradefed 架构

本节介绍 Tradefed 的内部结构及其关系。有关更多详细信息,请参阅链接的子页面。

测试配置

Tradefed 中的测试配置以 XML 格式描述。了解配置的结构是运行和自定义测试的关键。

TF配置的结构

全局 TF 配置

全局配置文件是一种特殊的 Tradefed XML 配置,在 Tradefed 启动时通过TF_GLOBAL_CONFIG环境变量加载。它加载与 Tradefed 实例范围相关的对象,这些对象将影响整体线束行为。

全局配置详细信息

密钥库

密钥库允许将来自密钥库的命令行选项注入 Tradefed,以避免直接在命令行上引用该值。这可用于通过直接从密钥库检索密码来隐藏命令行中的密码。

密钥库详细信息

装置经理

设备管理器负责跟踪正在运行的 Tradefed 实例上的设备状态。监控分配状态和在线状态等方面。

测试命令调度程序

Tradefed 中的测试命令调度程序接受要运行的命令,将它们与设备关联,然后启动测试调用。

构建提供商

构建提供程序是任何测试调用的第一步。它下载设置和运行测试所需的资源(构建映像、测试 APK 等)。它还在将传递给测试的BuildInfo对象中引用它们。本地可用的资源也可以在BuildInfo对象中链接。

目标制备器和清洁器

目标准备器提供可选操作,可用于将被测目标配置为特定状态,例如刷新设备、设置特定属性以及连接到 Wi-Fi。

测试跑者

Tradefed 中的测试运行程序是指负责实际测试执行的对象。不同的测试运行者以不同的方式驱动测试执行;例如,仪器测试运行程序与 JUnit 测试运行程序有很大不同。

结果报告者

Tradefed 中的结果报告者是指将结果发送到特定目的地的对象。每个实现通常专门针对不同的结果后端。结果报告者负责将 Tradefed 结果格式转换为目标格式。

这种灵活的设计允许任何测试报告到任何结果目的地,并轻松地以隔离的方式添加更多测试。

指标收集器

指标收集器是 Tradefed 中的一个特殊对象,与测试执行正交。它允许在测试生命周期的不同点(例如,测试开始、测试结束)收集信息。由于收集器与测试本身分离,因此可以交换、添加和删除点,而无需更改测试本身。

主机范围设置

本节介绍适用于完整 Tradefed 实例运行的设置。这些选项会影响整个线束的行为,以适应不同的环境,例如在受限网络中。

附加功能

以下部分描述了 Tradefed 而不是 Tradefed 对象的一般用法。

Tradefed 分片

当测试语料库很大或需要很长时间才能执行时,可以将其拆分到多个设备上。我们将这种分割称为分片。本节介绍分片的工作原理及其配置方式。

分片详情

使用SL4A

Tradefed 支持 Android、SL4A 的脚本层;这是一个自动化工具集,用于以独立于平台的方式调用 Android API。

SL4A 带有 Tradefed 详细信息

动态@option下载

在某些情况下,测试或某些特定操作所需的文件在本地不可用。此功能允许 Tradefed 从远程位置获取这些文件,而无需通过构建提供商。

动态@option下载