Android Test Station

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

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

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

  1. 请遵循“启用开发人员选项和调试”中的说明

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

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

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

  3. 使用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链接,然后单击“选择”按钮以确认选择。
    测试资源选择器-Web URL
    图15.测试资源选择器-Web URL

    如果您已将资源上传到Google Grive,Google Cloud Storage(GCS)或其他渠道,则也可以导航至特定渠道的标签并在此处选择资源。这是从Google Drive选择资源的示例。
    测试资源选择器-Google云端硬盘
    图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.xmltest_result_failures.html
    测试运行结果
    图29.测试运行结果

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

    各个模块的结果在“测试结果”选项卡上。
    测试结果标签
    图31.“测试结果”选项卡

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

    要查看测试运行的详细信息,例如create_time ,请转到“配置”选项卡。
    测试配置选项卡
    图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实例时,可以通过将其导出为文件与其他用户共享配置。为此,请转到“设置”页面,然后单击右上角的“导出”。
    配置文件管理
    图34.配置文件管理

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

  • 创建一个新的设备动作

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

    添加新设备操作

    1. 单击“新设备操作” 。
      新设备操作按钮
      图36.新设备操作按钮

    2. 输入名称和描述。
      设备操作名称
      图37.设备操作名称

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

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

      目标编制者清单
      图38.添加目标准​​备器

      可以在com.android.tradefed.targetprep参考中找到可用的目标准备器列表。
      目标编制者清单
      图39.目标准备者列表

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

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

      动作命令示例
      图41.操作命令示例

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

    8. 点击更新。
      动作保存更改
      图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发行说明。要报告错误或提供建议,请提交错误报告。合作伙伴应通过其合作伙伴渠道报告错误或建议。
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值