贸易联盟架构概述

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

1. 测试配置(XML 配置)

概述

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

TF 配置的结构

全局 TF 配置

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

全局配置详细信息

密钥库

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

密钥库详细信息

2.设备管理器

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

3.测试命令调度器

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

4.构建提供者

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

5. Target Preparer and Cleaner

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

6. 测试跑者

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

7. 结果报告者

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

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

8. 指标收集器

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

9. 主机范围的设置

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


10. 附加功能

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

交易分片

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

分片细节

使用 SL4A

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

带有 Tradefed 详细信息的 SL4A

动态@Option 下载

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

动态@option下载