使用 Trade Federation 执行的测试,其生命周期包括四个独立阶段,并且围绕正式定义的接口而设计。
定义的接口
- build 提供程序:提供一个要测试的 build,必要时可下载适当的文件。
- 目标准备器:准备测试环境,其中可能包括软件安装和设备配置。
- 测试:执行测试并收集测试结果。虽然我们的 IRemoteTest 接口专为在 Trade Federation 环境中实现出色性能而设计,但这里执行的测试可以是任何 JUnit 测试。
- 测试调用监听器(结果报告):监听测试结果,通常用于将测试结果转发到存储库或将其显示给测试运行程序。
TF 中的基本测试实体是一项配置 (config)。config 是一个 XML 文件,用于声明测试的生命周期组件。
对测试生命周期进行独立分段的目的是方便重复使用。使用该设计,开发者可以创建一次测试,然后集成者可以创建不同的配置,以便在不同环境中运行该测试。例如,他们可以创建一项配置,该配置可以在本地计算机上运行测试并将测试结果转储到 stdout。然后,他们可以创建执行相同测试的第二个配置,但使用不同的测试调用监听器将测试结果存储在数据库中。他们还可能设计第三个配置,用于从某处的测试实验室进行连续测试。
这里顺便说明一下,一个配置加上相关命令行参数(由测试运行程序提供)一起称为命令。当 TF 将某个命令与 ITestDevice
配对并执行该命令时,后续对象称为调用。简而言之,调用包含贯穿整个生命周期的完整 TF 测试执行过程。
其他配置组件
阶段输出和错误
调用的每个阶段都会依序执行,且具有特定目标。本部分介绍每个阶段的正常输出和错误。
build 提供程序
此阶段会创建并输出 IBuildInfo
对象,该对象包含设置和运行测试所需的所有文件引用。
此阶段最常见的错误是无法下载或找不到请求的文件。
此阶段出现的错误会导致直接报告错误,并且不会运行任何测试。
目标准备
此阶段会为被测目标设置必要状态。此阶段可根据需要为给定的测试调用更改设备或主机设置。
此阶段的常见错误通常包括设备无法设置为给定状态(例如无法刷写),以及找不到设置必需的文件。
此阶段出现的错误会导致运行目标清理、报告错误,并且不会运行任何测试。
测试
此阶段会对先前准备的目标运行请求的测试,并报告所有测试执行结果。
此阶段的常见错误通常包括被测目标不可用,或某些错误导致测试部分执行。这些错误是会影响测试执行本身的基础架构问题,而不是单个测试用例失败。
此阶段出现的错误会导致停止执行测试、运行目标清理、报告错误并获得部分结果。
结果报告
此阶段会向配置的服务(例如服务器和本地文件)报告结果和错误。
虽然单个结果报告程序可能会出错,但它们彼此独立(一个报告程序不会看到另一个报告程序的错误)。这些错误只会影响单个报告程序自身的结果报告。可在日志中查看这些错误。