Android测试站-用户指南
-
- Android测试站(Android Test Station)
-
- 设置Android Test Station
-
- 安装Android Test Station
- 启动Android Test Station
- 备份和还原数据库
- 设定精灵
- 恢复配置备份
- 设置默认服务帐户
- 导入配置集
- 包括Wi-Fi设置
- 连接设备
- 运行测试
-
- 选择测试
- 配置测试运行
- 选择设备
- 添加设备动作
- 设置测试资源
- 开始测试运行
- 制定测试计划
-
- 配置测试计划
- 添加测试套件
- 添加设备操作
- 设置测试资源
- 查看测试运行
-
- 测试运行清单
- 试运行详细信息
- 高级功能
-
- 管理配置文件
- 创建一个新的设备动作
- 管理测试
- 导出主机配置
- 使用本地文件和目录
- 支持
-
- 错误报告
Android测试站(Android Test Station)
Android Test Station是一个测试工具,Android开发人员和测试工程师可以使用它来使用用户界面来运行标准的Android测试套件,例如Android兼容性测试套件(CTS) 。该工具充当贸易联合会(TF)的Web界面,使您可以通过最少的设置轻松地在一组测试设备上运行CTS,并建立连续运行测试的时间表。
设置Android Test Station
本节说明如何安装和设置Android Test Station。
Android Test Station使用以下位置的源代码:
- Android Test Station源代码
- TradeFed Cluster源代码
-
安装Android Test Station
注意:此处提供的链接是建议在Ubuntu Linux计算机上安装的。该工具可以在其他操作系统上运行,但是可能需要针对每个需求使用不同的步骤。
遵循要运行的测试套件的所有硬件和软件要求。
CTS的要求可在source.android.com上找到。
没有其他硬件要求,但是我们建议使用一台具有100 GB可用硬盘空间和8 GB内存的计算机,该计算机足以存储测试套件多次运行的输出文件。
有两种安装Android Test Station的方法:
- 运行安装程序。
- 手动安装,这需要安装多个程序和资源。
使用安装程序进行安装
在Ubuntu 18.04+上,安装程序会安装和配置运行Android Test Station所需的所有程序和资源。要使用安装程序:
-
运行安装程序:
curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
-
运行
mtt version
来检查已安装的Android Test Station CLI版本。
手动安装
安装Docker-
按照说明在Linux机器上安装Docker Community Edition(CE) 。
-
请遵循安装后的步骤以非root用户身份管理Docker 。
-
您可能需要重新启动终端窗口或注销并重新登录,以使权限更改生效。
安装Python 3.7
Android Test Station CLI需要Python 3.7。对于Ubuntu 16.04或更早版本,您需要通过执行以下操作之一首先添加Python 3.7的存储库:
-
运行以下命令:
sudo add-apt-repository ppa:deadsnakes/ppa
-
或从源代码构建和安装存储库
要安装Python 3.7,请运行以下命令:
sudo apt-get update sudo apt install python3.7 python3.7-distutils
获取Android Test Station CLI
在此处下载命令行界面(CLI)软件包。 -
启动Android Test Station
使用以下命令启动Android Test Station:
mtt start
第一次启动UI时,可能需要几分钟的时间才能显示出来。 CLI显示一个Web URL,以在浏览器中访问UI。默认情况下,Web URL为
localhost:8000
。如果需要,您可以在启动时使用--port
标志更改默认端口。如果有较新的版本,则可以更新到当前版本。您可以查看发行说明中的最新版本。
注意:如果要从R5之前的版本进行更新,请在升级之前备份数据,以便可以安全地回滚到以前的版本而不会丢失数据。请参阅备份和还原数据库以获取备份和还原说明。
要更新到当前版本,请运行:
mtt start --force_update
要停止应用程序,请运行:
mtt stop
要查看其他命令的列表,请使用:
mtt --help
-
备份和还原数据库
要备份ATS数据库,请停止应用程序并运行以下命令,该命令将当前数据库备份到主目录中名为
mtt-backup.tar
的TAR文件中:docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar cvf /out/mtt-backup.tar ."
要还原,请在启动应用程序之前运行以下命令:
docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar xvf /out/mtt-backup.tar"
设定精灵
首次安装并运行Android Test Station之后,设置向导将引导您完成一些步骤,以帮助您针对您的环境自定义该工具。您在此处所做的任何更改都可以稍后通过“设置”页面重新配置。
-
恢复配置备份
如果您有从其他Android Test Station主机备份的配置文件,则可以通过单击“上传文件”按钮上传该文件,以复制从该主机修改的任何配置。
图1.恢复配置备份 -
设置默认服务帐户
您可以设置一个Android测试站默认在访问您的资源(例如Google Cloud Storage,Google Drive)时使用的服务帐户。要验证您的服务帐户,请单击“上载服务帐户密钥”,然后选择服务帐户的JSON密钥文件。
图2.设置服务帐户成功验证服务帐户后,该帐户的电子邮件地址将显示在页面的右上角。要更改服务帐户,请单击帐户名称,删除当前的默认帐户,然后上载新的服务帐户密钥。
图3.更改服务帐户 -
导入配置集
配置集是用于运行测试套件的配置包,包括相关的设备操作,构建通道等。配置集托管在特定的Google Cloud Storage(GCS)存储桶中。用您的Google帐户验证GCS构建渠道后,您会看到所有可用配置集的列表。
注意:当前没有公开可用的配置集,因此对于某些用户,此列表可能为空。
选择要添加到Test Station主机的任何配置集,然后单击Import Selected 。
图4.导入配置集 -
包括Wi-Fi设置
某些CTS测试要求您的设备连接到Wi-Fi热点。要选择您的Wi-Fi网络,请输入WiFi SSID和可选的WiFi PSK 。
图5. Wi-Fi热点设置完成安装向导后,页面将重新加载并应用新设置。
连接设备
必须启用USB调试才能使用设备进行测试。要启用调试:
-
请遵循“启用开发人员选项和调试”中的说明。
-
如果您打算使用预加载了自定义ADB密钥的测试Android版本,请将自定义
.adb_key
文件放在~/.android/
目录下。在为运行那些构建的设备刷新设备后,文件会自动加载并传递到ADB以自动启用USB调试。
注意:要将自定义ADB密钥添加到您的Android可调试版本中,请参见添加PRODUCT_ADB_KEYS的更改。
-
使用USB将设备连接到主机。
刷新Web界面后一分钟内,该设备将出现在Android Test Station的“设备”标签中。您也可以在此选项卡上查看设备的状态。
图6.连接设备不同的设备状态为:
- 可用-设备已连接并可以运行测试。
- 已分配-设备已连接并且正在运行测试。每个设备一次只能运行一个测试,因此该设备必须先完成当前测试,然后再运行新测试。
重要提示:连接设备后,请勿在Android Test Station外部的终端中使用ADB。该应用程序与Android Test Station ADB实例冲突,并导致设备与其断开连接。
运行测试
-
选择测试
Android Test Station随附了一组预捆绑的CTS配置。要运行这些测试之一,请转到“测试套件”选项卡,然后单击“运行测试”以找到所需的测试。图7.选择一个测试
要编辑或添加新测试,请参阅添加测试。
-
配置测试运行
编辑用于此特定测试运行的参数。大多数参数已预填充所选测试配置中定义的值。
可以使用默认值完成此步骤,但是您可以更改任何参数(例如Max Retry和Command )以适合您的需求。
注意:此处所做的任何更改仅影响此测试运行,而不更改已保存的测试配置。要更改测试配置,请参阅“编辑测试” 。
图8.配置测试运行测试运行参数为:
-
名称-您要运行的测试套件的名称。
-
运行次数-安排此测试运行应执行的次数。使用Trade Federation计划测试运行,如果有能力的话,最多可以并行运行20个测试运行。
-
最大重试次数-如果至少一项测试失败,则重试一次测试的最大次数。对于完整的CTS运行,通常将其设置为4至6次重试,以处理不稳定的测试。
-
排队超时-如果测试运行在“排队”状态下停留的时间过长,则会自动取消。在此处指定取消之前要等待的时间。默认值为24小时。
-
命令-运行测试套件的命令。您可以在此处输入其他命令行参数。例如,使用以下命令在CTS 8.1中运行特定模块:
cts-suite -m ShortModuleName
-
重试命令-重试测试套件的命令。您可以在此处添加其他命令行参数。例如,要仅重试CTS 8.1中的特定模块,请使用:
cts --retry 0 -m ShortModuleName
重试参数可能与初始命令可用的参数不同,因此请在官方站点上检查所选测试套件的支持参数。
-
先前的测试运行-如果您希望重新运行先前的测试运行,请执行以下操作:
-
本地-如果运行是在当前主机上启动的,请输入在查看测试运行的详细信息时看到的测试运行ID。
图9.本地先前的测试运行 -
远程-如果运行是在其他主机上启动的,则通过选择远程,单击上传测试结果文件,然后从本地存储中选择一个文件来上传测试结果文件。
图10.远程先前的测试运行
-
-
-
选择设备
单击复选框以选择要分配用于运行测试套件的设备。分片计数应自动更改以匹配所选设备的数量。
图11.选择设备所有选定的设备必须处于“可用”状态才能执行测试运行,并且在执行测试运行时它们都将切换到“已分配”状态。等待设备可用时,测试运行处于“已排队”状态。
注意:要与分片一起使用,测试必须实现IShardableTest接口,否则它们将在调用时失败。当前,所有CTS和GTS测试都支持分片。
-
添加设备动作
设备操作是可以在每次测试运行之前执行的脚本。已经配置了一些设备操作,例如闪烁和重新启动。要创建新设备操作,请参阅创建新设备操作。
图12.设备动作要将设备操作添加到测试运行中,请单击添加新操作,选择要添加的操作的复选框,然后单击添加操作。设备操作按顺序执行。您可以通过拖动动作来重新排列动作。
图13.重新排序动作 -
设置测试资源
测试资源是执行测试运行所需的文件。例如,运行CTS需要一个android-cts*.zip文件,而刷新设备需要您提供构建映像。
测试套件zip文件的下载URL应该默认为提供给合作伙伴的Google云端硬盘链接。您可以通过单击浏览选择其他文件。在弹出窗口中,您可以输入文件下载链接,使用经过身份验证的构建通道中的文件,或上载文件以从本地存储中使用。
图14.测试资源以下是用于通过Web URL选择测试资源的弹出窗口。您只需输入下载URL链接,然后单击“选择”按钮以确认选择。
图15.测试资源选择器-Web URL如果您已将资源上传到Google Grive,Google Cloud Storage(GCS)或其他渠道,则也可以导航至特定渠道的标签并在此处选择资源。这是从Google Drive选择资源的示例。
图16.测试资源选择器-Google云端硬盘除了选择文件外,“文件名”字段中还支持通配符。该文档可在此处找到。
注意:输入通配符后,将使用与模式匹配的最新文件来运行测试。
图17.测试资源选择器-通配符模式支持您还可以从Android Test Station的本地文件存储中选择一个文件。您可以将文件上传到此存储中,也可以直接使用本地文件和目录。
图18.测试资源选择器-本地文件存储 -
开始测试运行
输入测试运行所需的信息后,点击开始测试运行。如果所有信息均有效,则将开始测试运行,然后将您重定向到一个页面,以查看测试运行的详细信息和进度。
图19.开始测试运行
制定测试计划
测试计划用于定期创建测试运行。例如,每天下午5点运行CTS 9.0。要创建新的测试计划,请点击创建新的测试计划。
图20.创建一个测试计划
-
配置测试计划
输入测试计划的名称以及您要添加的所有标签。然后选择要使用的时间表。
- 手动-仅当用户在“测试计划”列表页面中单击“运行测试计划”时,测试计划才会创建测试运行。
- 定期-测试计划将根据所选的定期计划自动安排测试运行。例如,安排每天下午5:00运行测试。
- 自定义-测试计划将根据输入的cron表达式自动安排测试运行。例如,要安排每天下午5:00进行测试运行,cron表达式应为0 17 * * * 。
图21.配置测试计划 -
添加测试套件
通过单击**+添加测试运行配置,添加**要由测试计划计划的测试套件。从“名称”下拉列表中选择一个测试套件,然后单击“下一步” 。然后选择要在其上运行测试的设备,然后单击“添加配置” 。您可以为每个测试计划添加多个配置。
图22.配置测试运行 -
添加设备操作
在每次测试运行之前,添加要执行的设备操作。有关更多详细信息,请参见添加设备操作。
图23.添加设备动作 -
设置测试资源
将测试资源添加到测试计划与将其添加到单个测试运行中相同。有关更多详细信息,请参见设置测试资源。
图24.设置测试资源
查看测试运行
-
测试运行清单
在“测试运行”页面上查看计划的测试运行的列表。单击查看以查看有关测试运行的更多详细信息。
您还可以通过在过滤器栏中输入字符串并按Enter键来过滤列表。您可以使用多个过滤器,以逗号分隔。过滤器返回任何列中包含确切文本(无子字符串匹配)的所有行,但Status和Created除外。
空过滤器将返回所有行。当前无法过滤具有空值的行。
图25.测试运行列表 -
试运行详细信息
您可以在此处查看测试运行的详细信息,例如状态,日志和结果。
图26.测试运行细节测试运行状态
状态部分中显示了测试运行的进度。如果有相关消息,例如下载进度,取消原因或错误消息,也将在此处显示。
图27.测试运行状态测试运行状态为:
- 待定-所需资源正在下载。
- 排队-测试准备就绪,可以在设备可用时运行。
- 正在运行-测试正在分配的设备上运行。
- 已完成-测试已完成并报告了结果。
- 已取消-测试被用户取消或在尝试查找可用设备时超时。
- 错误-发生错误,导致测试无法运行。
取消测试运行
如果测试运行尚未完成,则可以通过单击“取消” ,然后在确认对话框中单击“是”来取消测试。如果测试运行在“已排队”状态的时间长于queue_timeout_seconds字段,则也会自动取消。在“运行”状态下取消测试运行可能需要几分钟才能生效。
图28.取消测试运行测试运行结果
测试运行完成后,将收集并显示结果。您可以通过单击每次运行的箭头来查看其他详细信息。单击查看输出文件以查看收集的测试工件,例如test_result.xml
和test_result_failures.html
。
图29.测试运行结果您可以在“日志”选项卡中查看实时主机和Tradefed日志。
图30.“日志”选项卡各个模块的结果在“测试结果”选项卡上。
图31.“测试结果”选项卡您可以通过单击“测试资源”选项卡中的“打开”来下载用作测试资源的文件。
图32.“测试资源”选项卡要查看测试运行的详细信息,例如create_time ,请转到“配置”选项卡。
图33. Config选项卡
高级功能
-
管理配置文件
Android Test Station使用以YAML编写的配置文件来加载预定义的选项,例如测试,构建通道和设备操作。下面显示了一些选项的配置文件示例。
// example_file.yamltests:- id : android.cts.9_0.armname: CTS 9.0 (ARM)test_resource_defs:- name: android-cts.zipdefault_download_url: https://dl.google.com/dl/android/cts/android-cts-9.0_r7-linux_x86-arm.ziptest_resource_type: TEST_PACKAGEcommand: ctsenv_vars:- name: TF_PATHvalue: ${ TF_WORK_DIR}/android-cts/tools:${ TF_WORK_DIR}/android-cts/testcases- name: LD_LIBRARY_PATHvalue: ${ TF_WORK_DIR}/android-cts/lib:${ TF_WORK_DIR}/android-cts/lib64setup_scripts:output_file_patterns:- android-cts/logs/latest/.*- android-cts/results/latest/.*\.html- android-cts/results/latest/compatibility_result\..*- android-cts/results/latest/logo.png- android-cts/results/latest/test_result.xmlresult_file: test_result.xmljava_properties:- name: CTS_ROOTvalue: ${ TF_WORK_DIR}context_file_dir: android-cts/results/context_file_pattern: '[\d_\.]+\.zip'retry_command_line: retry --retry 0runner_sharding_args: --shard-count ${ TF_SHARD_COUNT}build_channels:- id: google_drivename: Google Driveprovider_name: Google Drivedevice_actions:- id: flashname: Flashtest_resource_defs:- name: bootloader.imgtest_resource_type: DEVICE_IMAGE- name: radio.imgtest_resource_type: DEVICE_IMAGE- name: img.ziptest_resource_type: DEVICE_IMAGEtradefed_target_preparers:- class_name: com.android.tradefed.targetprep.RunHostCommandTargetPrepareroption_values:- name: work-dirvalues:- ${ TF_WORK_DIR}- name: host-setup-commandvalues:- adb -s $SERIAL reboot-bootloader- fastboot -s $SERIAL flash bootloader bootloader.img- fastboot -s $SERIAL flash radio radio.img- fastboot -s $SERIAL reboot-bootloader- fastboot -s $SERIAL -w update img.zip- adb -s $SERIAL wait-for-device- name: host-cmd-timeoutvalues:- 10m
设置Android Test Station实例时,可以通过将其导出为文件与其他用户共享配置。为此,请转到“设置”页面,然后单击右上角的“导出”。
图34.配置文件管理下载配置文件后,与其他用户共享文件。他们可以通过单击导入并选择配置文件,将配置文件添加到其Android Test Station实例。
-
创建一个新的设备动作
设备操作用于自动执行设备设置过程。操作是在每次测试运行之前(包括重试之前)在要运行测试的每个设备上执行的脚本。要查看可用设备操作的列表,请转到“设置”页面,然后单击“设备操作”选项卡。已经配置了多个设备操作,例如重新引导和刷新。
图35.设备操作选项卡添加新设备操作
-
单击“新设备操作” 。
图36.新设备操作按钮 -
输入名称和描述。
图37.设备操作名称 -
单击添加目标准??备器。
-
输入行业联合会目标准备者的完整类名,例如
com.android.tradefed.targetprep.RunHostCommandTargetPreparer
。
图38.添加目标准??备器可以在com.android.tradefed.targetprep参考中找到可用的目标准备器列表。
图39.目标准备者列表 -
添加任何与目标准备器一起使用的选项。要查看可用选项,请检查targetprep以获取AOSP中每个目标准备者的源代码:
图40.操作选项示例 -
要添加选项,请单击添加目标准??备者选项,然后输入所需的值。
图41.操作命令示例 -
定义执行设备操作所需的测试资源,例如,构建用于刷新的映像。要添加资源定义,请单击添加测试资源,然后输入所需的文件。如果您知道文件的位置,则可以通过单击浏览提供默认的下载URL。
图42.动作测试资源 -
点击更新。
图43.操作保存更改
-
-
管理测试
编辑测试
要编辑保存的测试,请转到“测试”页面,然后在要修改的测试行上单击“编辑”。更改测试配置后,点击更新。
图44.编辑测试注意:要修改其中一个预先捆绑的测试,请使用添加新测试中描述的“制作副本”功能来创建一个新变体。重新启动Android Test Station时,将还原对预捆绑测试配置的任何更改。
添加新测试
要添加新测试,请转到“测试”页面,然后点击创建新测试。输入适当的信息,然后单击创建。
图45.创建一个测试注意:要从已保存的测试中预填充数据,请转到“测试”页面,在要复制的测试行的末尾单击三个点,然后单击“复制” 。
图46.复制测试 -
导出主机配置
配置主机后,可以将主机的配置导出到文件中。您可以将该文件上传到其他主机,以复制保存的配置。
要导出主机的配置,请转到“设置”页面,然后单击右上角的“导出”。
图47.导出主机配置要导入主机配置文件,请转到“设置”页面,然后单击右上角的“导入”。
图48.导入主机配置 -
使用本地文件和目录
从版本R11开始,可以在Android Test Station中自动访问
$HOME/.ats_storage
目录中的文件。将文件复制或移动到该目录中,然后在安排测试运行时从“本地文件”选项卡中选择它。cp /path/to/file $HOME/.ats_storage
图49.从$HOME/.ats_storage
目录中选择一个文件您可以使用
--mount_local_path
标志将其他目录装载到本地文件存储中。mtt start --mount_local_path=/path/to/dir1 --mount_local_path=/path/to/dir2:renamed_dir2
图50.本地文件存储中挂载的其他目录
支持
-
错误报告
您对Android Test Station的贡献有助于改善该工具的开发,我们希望您的投入!有关最新版本的详细信息,请参阅ATS发行说明。要报告错误或提供建议,请提交错误报告。合作伙伴应通过其合作伙伴渠道报告错误或建议。