Google 致力于为黑人社区推动种族平等。查看具体举措

Android测试站

GMS合作伙伴:有关其他信息,请参见GMS合作伙伴网站上的Android测试站页面。

Android Test Station是一个测试工具,Android开发人员和测试工程师可以使用它来使用用户界面来运行标准的Android测试套件,例如Android兼容性测试套件(CTS) 。该工具充当贸易联合会(TF)的Web界面,使您可以通过最少的设置轻松地在一组测试设备上运行CTS,并建立连续运行测试的时间表。

设置Android Test Station

本部分说明了如何安装和设置Android Test Station。

Android Test Station使用以下位置的源代码:

安装Android Test Station

遵循您要运行的测试套件的所有硬件和软件要求。

CTS的要求可在source.android.com找到

没有其他硬件要求,但是我们建议使用一台具有100 GB可用硬盘空间和8 GB内存的计算机,该计算机足以存储测试套件多次运行的输出文件。

有两种安装Android Test Station的方法:

使用安装程序进行安装

在Ubuntu 18.04+上,安装程序会安装和配置运行Android Test Station所需的所有程序和资源。

要使用安装程序:

  1. 运行安装程序:

    curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
    
  2. 运行mtt version来检查Android Test Station CLI的安装版本。

手动安装

安装Docker
  1. 请遵循在Linux机器上安装Docker Community Edition(CE)的说明。

  2. 请遵循安装后的步骤以非root用户身份管理Docker

  3. 您可能需要重新启动终端窗口或注销并再次登录,以使权限更改生效。

安装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标志更改默认端口。

如果有较新的版本,则可以更新到当前版本。您可以查看发行说明中的最新版本。

要更新到当前版本,请运行:

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调试才能使用设备进行测试。要启用调试:

  1. 请按照“启用开发人员选项和调试”中的说明进行操作。

  2. 如果您打算使用预加载了自定义ADB密钥的测试Android版本,请将自定义.adb_key文件放在~/.android/目录下。

    在为运行那些构建的设备刷新设备后,文件会自动加载并传递到ADB以自动启用USB调试。

  3. 使用USB将设备连接到主机。

    刷新Web界面后一分钟内,该设备将显示在Android Test Station的“设备”标签中。您也可以在此选项卡上查看设备的状态。

    连接设备

    图6.连接设备

不同的设备状态为:

  • 可用-设备已连接并可以运行测试。
  • 已分配-设备已连接,并且正在运行测试。每个设备一次只能运行一个测试,因此该设备必须先完成当前测试,然后再运行新测试。

运行测试

选择测试

Android Test Station附带了一组预捆绑的CTS配置。要运行这些测试之一,请转到“测试套件”选项卡,然后单击“运行测试”以找到所需的测试。

选择一个测试

图7.选择一个测试

要编辑或添加新测试,请参阅添加测试

配置测试运行

编辑用于此特定测试运行的参数。大多数参数都预先填充了在所选测试配置中定义的值。

可以使用默认值完成此步骤,但是您可以更改任何参数(例如Max RetryCommand )以适合您的需求。

配置测试运行

图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.选择设备

要通过设备序列号以外的属性选择设备,可以手动输入“设备规格”。例如,要选择产品名称为“ bramble”的3个设备,请输入以下内容:

product:bramble;product:bramble;product:bramble

支持的属性是:

  • build_id
  • device_serial
  • 主机名
  • 产品
  • product_variant
  • sim_state

所有选定的设备必须处于“可用”状态才能执行测试运行,并且在执行测试运行时它们都将切换到“已分配”状态。等待设备可用时,测试运行处于“已排队”状态。

添加设备动作

设备操作是可以在每次测试运行之前执行的脚本。已经配置了一些设备操作,例如闪烁和重新引导。要创建新的设备操作,请参阅“创建新的设备操作”

设备动作

图12.设备动作

要将设备操作添加到测试运行中,请单击添加新操作,选择要添加的操作的复选框,然后单击添加操作。设备操作按顺序执行。您可以通过拖动动作来重新排列动作。

添加动作

图13.重新排序动作

设置测试资源

测试资源是执行测试运行所需的文件。例如,运行CTS需要一个android-cts*.zip文件,而刷新设备需要您提供构建映像。

测试套件zip文件的下载URL应该默认为提供给合作伙伴的Google云端硬盘链接。您可以通过单击浏览选择其他文件。在弹出窗口中,您可以输入文件下载链接,使用经过身份验证的构建通道中的文件或上载文件以从本地存储中使用。

测试资源

图14.测试资源

以下是用于通过Web URL选择测试资源的弹出窗口。您只需输入下载URL链接,然后单击“选择”按钮以确认选择。

测试资源选择器-Web URL

图15.测试资源选择器-Web URL

如果您已将资源上传到Google Grive,Google Cloud Storage(GCS)或其他渠道,则也可以导航至特定渠道的标签并在此处选择资源。这是从Google Drive选择资源的示例。

测试资源选择器-Google云端硬盘

图16.测试资源选择器-Google云端硬盘

除了选择文件外,“文件名”字段中还支持通配符。该文档可在此处找到。

测试资源选择器-通配符模式支持

图17.测试资源选择器-通配符模式支持

您还可以从Android Test Station的本地文件存储中选择一个文件。您可以将文件上传到此存储中,也可以直接使用本地文件和目录

测试资源选择器-本地文件存储

图18.测试资源选择器-本地文件存储

添加重新运行配置

您可以计划将在主要运行完成后开始的重新运行并加载其结果,但是可以使用不同的设备,操作或资源。

添加重新运行配置

图19.添加重新运行配置

开始测试运行

输入测试运行所需的信息后,点击开始测试运行。如果所有信息均有效,则将开始测试运行,然后将您重定向到一个页面,以查看测试运行的详细信息和进度。

开始试运行

图20.开始测试运行

制定测试计划

测试计划用于定期创建测试运行。例如,每天下午5点运行CTS 9.0。要创建新的测试计划,请点击创建新的测试计划

创建测试计划

图21.创建一个测试计划

配置测试计划

输入测试计划的名称以及您要添加的所有标签。然后选择要使用的时间表。

  • 手动-仅当用户在“测试计划”列表页面中单击“运行测试计划”时,测试计划才会创建测试运行。
  • 定期-测试计划将根据所选的定期时间表自动安排测试运行。例如,安排每天下午5:00运行测试。
  • 自定义-测试计划将根据输入的cron表达式自动安排测试运行。例如,要安排每天下午5:00进行测试运行,cron表达式应为0 17 * * *

配置测试计划

图22.配置测试计划

添加测试套件

通过单击+添加测试运行配置,添加要由测试计划计划的测试套件。从“名称”下拉列表中选择一个测试套件,然后单击“下一步” 。然后选择要在其上运行测试的设备,然后单击“添加配置” 。您可以为每个测试计划添加多个配置。

配置测试运行

图23.配置测试运行

添加设备操作

在每次测试运行之前,添加要执行的设备操作。有关更多详细信息,请参见添加设备操作

添加设备操作

图24.添加设备操作

设置测试资源

将测试资源添加到测试计划与将其添加到单个测试运行中相同。有关更多详细信息,请参见设置测试资源

设置测试资源

图25.设置测试资源

查看测试运行

测试运行清单

在“测试运行”页面上查看计划的测试运行的列表。单击查看以查看有关测试运行的更多详细信息。

您还可以通过在过滤器栏中输入字符串并按Enter键来过滤列表。您可以使用多个过滤器,以逗号分隔。过滤器返回任何列中包含确切文本(无子字符串匹配)的所有行,但StatusCreated除外。

空过滤器将返回所有行。当前无法过滤具有空值的行。

测试运行清单

图26.测试运行列表

试运行详细信息

您可以在此处查看测试运行的详细信息,例如状态,日志和结果。

测试运行详细信息

图27.测试运行细节

试运行状态

状态部分显示了测试运行的进度。如果有相关消息,例如下载进度,取消原因或错误消息,也将在此处显示。

测试运行状态

图28.测试运行状态

测试运行状态为:

  • 待定-所需资源正在下载中。
  • 排队-测试准备就绪,可以在设备可用时运行。
  • 正在运行-测试正在分配的设备上运行。
  • 已完成-测试已完成并报告了结果。
  • 已取消-测试被用户取消或在尝试查找可用设备时超时。
  • 错误-发生错误,导致测试无法运行。

取消测试运行

如果测试运行尚未完成,则可以通过单击“取消” ,然后在确认对话框中单击“是”取消测试。如果测试运行在“已排队”状态的时间长于queue_timeout_seconds字段,则也会自动取消。在“运行”状态下取消测试运行可能需要几分钟才能生效。

取消试运行

图29.取消测试运行

测试运行结果

测试运行完成后,将收集并显示结果。您可以通过单击每次运行的箭头来查看其他详细信息。单击查看输出文件以查看收集的测试工件,例如test_result.xmltest_result_failures.html

测试运行结果

图30.测试运行结果

您可以在“日志”选项卡中查看实时主机和Tradefed日志。

测试运行日志

图31.日志选项卡

各个模块的结果在“测试结果”选项卡上。

测试结果标签

图32.“测试结果”选项卡

您可以通过单击“测试资源”选项卡中的“打开”来下载用作测试资源的文件。

测试资源选项卡

图33.“测试资源”选项卡

要查看测试运行的详细信息,例如create_time ,请转到“配置”选项卡。

测试配置选项卡

图34. Config选项卡

高级功能

管理配置文件

Android Test Station使用以YAML编写的配置文件来加载预定义的选项,例如测试,构建通道和设备操作。下面显示了一些选项的示例配置文件。

// example_file.yaml
tests:
- id : android.cts.9_0.arm
  name: CTS 9.0 (ARM)
  test_resource_defs:
  - name: android-cts.zip
    default_download_url: https://dl.google.com/dl/android/cts/android-cts-9.0_r7-linux_x86-arm.zip
    test_resource_type: TEST_PACKAGE
  command: cts
  env_vars:
  - name: TF_PATH
    value: ${TF_WORK_DIR}/android-cts/tools:${TF_WORK_DIR}/android-cts/testcases
  - name: LD_LIBRARY_PATH
    value: ${TF_WORK_DIR}/android-cts/lib:${TF_WORK_DIR}/android-cts/lib64
  setup_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.xml
  result_file: test_result.xml
  java_properties:
  - name: CTS_ROOT
    value: ${TF_WORK_DIR}
  context_file_dir: android-cts/results/
  context_file_pattern: '[\d_\.]+\.zip'
  retry_command_line: retry --retry 0
  runner_sharding_args: --shard-count ${TF_SHARD_COUNT}

build_channels:
- id: google_drive
  name: Google Drive
  provider_name: Google Drive

device_actions:
- id: flash
  name: Flash
  test_resource_defs:
  - name: bootloader.img
    test_resource_type: DEVICE_IMAGE
  - name: radio.img
    test_resource_type: DEVICE_IMAGE
  - name: img.zip
    test_resource_type: DEVICE_IMAGE
  tradefed_target_preparers:
  - class_name: com.android.tradefed.targetprep.RunHostCommandTargetPreparer
    option_values:
    - name: work-dir
      values:
      - ${TF_WORK_DIR}
    - name: host-setup-command
      values:
      - 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-timeout
      values:
      - 10m

设置Android Test Station实例时,可以通过将其导出为文件来与其他用户共享配置。为此,请转到“设置”页面,然后单击右上角的“导出”。

配置文件管理

图35.配置文件管理

下载配置文件后,与其他用户共享文件。他们可以通过单击导入并选择配置文件,将配置文件添加到其Android Test Station实例。

创建一个新的设备动作

设备操作用于自动执行设备设置过程。操作是在每次测试运行之前(包括重试之前)在要运行测试的每个设备上执行的脚本。要查看可用设备操作的列表,请转到“设置”页面,然后单击“设备操作”选项卡。已经配置了多个设备操作,例如重新引导和刷新。

设备操作选项卡

图36.设备操作选项卡

添加新的设备操作

  1. 单击“新设备操作”

    新设备操作按钮

    图37.新设备操作按钮

  2. 输入名称和描述。

    设备操作名称

    图38.设备操作名称

  3. 单击添加目标准​​备器

  4. 输入行业联合会目标准备者的完整类名,例如com.android.tradefed.targetprep.RunHostCommandTargetPreparer

    添加目标准​​备者

    图39.添加目标准​​备器

    可以在com.android.tradefed.targetprep参考中找到可用的目标准备器列表。

    目标编制者清单

    图40.目标准备者列表

  5. 添加任何与目标准备器一起使用的选项。要查看可用选项,请检查targetprep以获取AOSP中每个目标准备者的源代码:

    动作选项示例

    图41.操作选项示例

  6. 要添加选项,请单击添加目标准​​备者选项,然后输入所需的值。

    动作命令示例

    图42.操作命令示例

  7. 定义执行设备操作所需的测试资源,例如,构建用于刷新的映像。要添加资源定义,请单击添加测试资源,然后输入所需的文件。如果目标准备者接受目录作为测试资源,请选择解压缩并在临时工作目录下指定相对的目标目录。如果您知道文件所在的位置,则可以通过单击浏览提供默认的下载URL。

    动作测试资源

    图43.动作测试资源

  8. 点击更新

    动作保存更改

    图44.操作保存更改

管理测试

编辑测试

要编辑保存的测试,请转到“测试”页面,然后在要修改的测试行上单击“编辑”。更改测试配置后,点击更新

编辑测试

图45.编辑测试

添加新测试

要添加新测试,请转到“测试”页面,然后点击创建新测试。输入适当的信息,然后单击创建

创建一个测试

图46.创建一个测试

复制测试

图47.复制测试

导出主机配置

配置主机后,可以将主机的配置导出到文件中。您可以将该文件上传到其他主机,以复制保存的配置。

要导出主机的配置,请转到“设置”页面,然后单击右上角的“导出”。

导出主机配置

图48.导出主机配置

要导入主机配置文件,请转到“设置”页面,然后单击右上角的“导入”。

导入主机配置

图49.导入主机配置

使用本地文件和目录

从版本R11开始,可以在Android Test Station中自动访问$HOME/.ats_storage目录中的文件。将文件复制或移动到该目录中,然后在安排测试运行时从“本地文件”选项卡中选择它。

cp /path/to/file $HOME/.ats_storage

选择本地文件

图50.$HOME/.ats_storage目录中选择一个文件

您可以使用--mount_local_path标志将其他目录装载到本地文件存储中。

mtt start --mount_local_path=/path/to/dir1 --mount_local_path=/path/to/dir2:renamed_dir2

其他挂载目录

图51.本地文件存储中挂载的其他目录

支持

错误报告

您对Android Test Station的贡献有助于改善该工具的开发,我们希望您的投入!有关最新版本的详细信息,请参阅ATS发行说明。要报告错误或提供建议,请提交错误报告。合作伙伴应通过其合作伙伴渠道报告错误或建议。