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使用以下位置的源代码:

  1. Android Test Station源代码
  2. TradeFed Cluster源代码

安装Android Test Station

注意:此处提供的链接是建议在Ubuntu Linux计算机上安装的。该工具可以在其他操作系统上运行,但是可能需要针对每个需求使用不同的步骤。

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

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
  1. 运行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标志更改默认端口。

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

注意:如果要从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主机备份配置文件,则可以通过单击“上传文件”按钮上传该文件,以复制从该主机修改的任何配置。

android 使用testng android test station_Test


图1.恢复配置备份

设置默认服务帐户

您可以设置一个Android测试站默认在访问您的资源(例如Google Cloud Storage,Google Drive)时使用的服务帐户。要验证您的服务帐户,请单击“上载服务帐户密钥”,然后选择服务帐户的JSON密钥文件。

android 使用testng android test station_android 使用testng_02


图2.设置服务帐户成功验证服务帐户后,该帐户的电子邮件地址将显示在页面的右上角。要更改服务帐户,请单击帐户名称,删除当前的默认帐户,然后上载新的服务帐户密钥。

android 使用testng android test station_测试运行_03


图3.更改服务帐户

导入配置集

配置集是用于运行测试套件的配置包,包括相关的设备操作,构建通道等。配置集托管在特定的Google Cloud Storage(GCS)存储桶中。用您的Google帐户验证GCS构建渠道后,您会看到所有可用配置集的列表。

注意:当前没有公开可用的配置集,因此对于某些用户,此列表可能为空。

选择要添加到Test Station主机的任何配置集,然后单击Import Selected

android 使用testng android test station_测试运行_04

图4.导入配置集

包括Wi-Fi设置

某些CTS测试要求您的设备连接到Wi-Fi热点。要选择您的Wi-Fi网络,请输入WiFi SSID和可选的WiFi PSK 。

android 使用testng android test station_Test_05


图5. Wi-Fi热点设置

完成安装向导后,页面将重新加载并应用新设置。

连接设备

必须启用USB调试才能使用设备进行测试。要启用调试:

  1. 请遵循“启用开发人员选项和调试”中的说明
  2. 如果您打算使用预加载了自定义ADB密钥的测试Android版本,请将自定义.adb_key文件放在~/.android/目录下。
    在为运行那些构建的设备刷新设备后,文件会自动加载并传递到ADB以自动启用USB调试。

注意:要将自定义ADB密钥添加到您的Android可调试版本中,请参见添加PRODUCT_ADB_KEYS的更改。

  1. 使用USB将设备连接到主机。
    刷新Web界面后一分钟内,该设备将出现在Android Test Station的“设备”标签中。您也可以在此选项卡上查看设备的状态。
    图6.连接设备
    不同的设备状态为:
  • 可用-设备已连接并可以运行测试。
  • 已分配-设备已连接并且正在运行测试。每个设备一次只能运行一个测试,因此该设备必须先完成当前测试,然后再运行新测试。

重要提示:连接设备后,请勿在Android Test Station外部的终端中使用ADB。该应用程序与Android Test Station ADB实例冲突,并导致设备与其断开连接。

运行测试

选择测试

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

android 使用testng android test station_测试运行_06

图7.选择一个测试

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

配置测试运行

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

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

注意:此处所做的任何更改仅影响此测试运行,而不更改已保存的测试配置。要更改测试配置,请参阅“编辑测试” 。

android 使用testng android test station_Android_07


图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.远程先前的测试运行

选择设备

单击复选框以选择要分配用于运行测试套件的设备。分片计数应自动更改以匹配所选设备的数量。

android 使用testng android test station_Android_08


图11.选择设备

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

注意:要与分片一起使用,测试必须实现IShardableTest接口,否则它们将在调用时失败。当前,所有CTS和GTS测试都支持分片。

添加设备动作

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

android 使用testng android test station_测试运行_09


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

android 使用testng android test station_Test_10


图13.重新排序动作

设置测试资源

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

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

android 使用testng android test station_Android_11


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

android 使用testng android test station_Test_12


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

android 使用testng android test station_Android_13


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

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

注意:输入通配符后,将使用与模式匹配的最新文件来运行测试。

android 使用testng android test station_android 使用testng_14


图17.测试资源选择器-通配符模式支持您还可以从Android Test Station的本地文件存储中选择一个文件。您可以将文件上传到此存储中,也可以直接使用本地文件和目录

android 使用testng android test station_Test_15


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

开始测试运行

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

android 使用testng android test station_测试运行_16


图19.开始测试运行

制定测试计划

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

android 使用testng android test station_android 使用testng_17


图20.创建一个测试计划

配置测试计划

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

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

android 使用testng android test station_Android_18


图21.配置测试计划

添加测试套件

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

android 使用testng android test station_测试运行_19


图22.配置测试运行

添加设备操作

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

android 使用testng android test station_Test_20


图23.添加设备动作

设置测试资源

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

android 使用testng android test station_android 使用testng_21


图24.设置测试资源

查看测试运行

测试运行清单

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

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

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

android 使用testng android test station_Android_22


图25.测试运行列表

试运行详细信息

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

android 使用testng android test station_Test_23


图26.测试运行细节测试运行状态

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

android 使用testng android test station_Test_24


图27.测试运行状态

测试运行状态为:

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

取消测试运行

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

android 使用testng android test station_android 使用testng_25


图28.取消测试运行测试运行结果

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

android 使用testng android test station_Android_26


图29.测试运行结果您可以在“日志”选项卡中查看实时主机和Tradefed日志。

android 使用testng android test station_测试运行_27


图30.“日志”选项卡各个模块的结果在“测试结果”选项卡上。

android 使用testng android test station_Test_28


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

android 使用testng android test station_android 使用testng_29


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

android 使用testng android test station_测试运行_30


图33. 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实例时,可以通过将其导出为文件与其他用户共享配置。为此,请转到“设置”页面,然后单击右上角的“导出”。

android 使用testng android test station_测试运行_31


图34.配置文件管理

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

创建一个新的设备动作

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

android 使用testng android test station_android 使用testng_32


图35.设备操作选项卡

添加新设备操作

  1. 单击“新设备操作” 。

    图36.新设备操作按钮
  2. 输入名称和描述。

    图37.设备操作名称
  3. 单击添加目标准备器
  4. 输入行业联合会目标准备者的完整类名,例如com.android.tradefed.targetprep.RunHostCommandTargetPreparer

    图38.添加目标准备器

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

android 使用testng android test station_android 使用testng_33


图39.目标准备者列表

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

    图40.操作选项示例
  2. 要添加选项,请单击添加目标准备者选项,然后输入所需的值。

    图41.操作命令示例
  3. 定义执行设备操作所需的测试资源,例如,构建用于刷新的映像。要添加资源定义,请单击添加测试资源,然后输入所需的文件。如果您知道文件的位置,则可以通过单击浏览提供默认的下载URL。

    图42.动作测试资源
  4. 点击更新。

    图43.操作保存更改

管理测试

编辑测试

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

android 使用testng android test station_android 使用testng_34


图44.编辑测试

注意:要修改其中一个预先捆绑的测试,请使用添加新测试中描述的“制作副本”功能来创建一个新变体。重新启动Android Test Station时,将还原对预捆绑测试配置的任何更改。

添加新测试

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

android 使用testng android test station_Android_35


图45.创建一个测试

注意:要从已保存的测试中预填充数据,请转到“测试”页面,在要复制的测试行的末尾单击三个点,然后单击“复制” 。

android 使用testng android test station_测试运行_36


图46.复制测试

导出主机配置

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

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

android 使用testng android test station_测试运行_37


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

android 使用testng android test station_Test_38


图48.导入主机配置

使用本地文件和目录

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

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

android 使用testng android test station_Android_39


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

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

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

android 使用testng android test station_测试运行_40


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

支持

错误报告

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