我的编程空间,编程开发者的网络收藏夹
学习永远不晚

CTS/GTS/STS/VTS/CTS-Verifier

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

CTS/GTS/STS/VTS/CTS-Verifier

和你一起终身学习,这里是程序员 Android

本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

一、CTS 测试 内容
二、GTS 测试 内容
三、STS 测试 内容
四、GSI 测试内容
五、VTS 测试 内容
六、CTS-Verifier 测试 内容
七、CDD 检查测试 内容

第一部分:CTS 测试 内容

一、CTS 是什么?

Compatibility Test Suite意为兼容性测试,是Google推出的Android平台兼容性测试机制。CTS的目的是让所有的Android设备开发商能够开发出兼容性更好的Android设备(比如:手机)。

二、CTS 测试的意义

Android的CTS测试,是Google推出的Android平台兼容性测试。这是一套包含了上万个自动运行 测试用例的测试框架 。

CTS测试主要用来测试OEM厂商设计的Android平台是不是符合Android的API接口定义。通过 CTS 测试不仅可以保证Android设备具有良好的用户体验 ,而且可保证大量优质的应用在Android设备上正常运行,同时,也能够让应用开发者能够放心地制作高质量的应用程序,因此只有通过 CTS 认证的设备才能合法的安装使用 Google market 等 Google 的应用。

三、CTS 测试需要的准备工作

    1. 测试工具

目前最新cts(9.0_r9)/(8.1_r16)/(7.0_r32)

CTS 测试工具

CTS 测试脚本

也可以通过下面网址去下载最新的测试工具(需要翻墙)
https://source.android.com/compatibility/cts/downloads.html

    1. 测试版本

测试需要使用user版本的软件(ROM)

    1. 准备刷好版本的测试机

32位的一般是2-4台,大概需要三十个小时左右跑完一轮;
64位的项目需要4-6台,一轮测试需要时间是60个小时左右。

    1. 手机设置

①. 测试需要把锁屏的开关设置为none(Settings > Security > Screen Lock should be 'None').

②. 测试需要设置灭屏时间sleep设置为最长时间或者never测试需要打开"USB Debugging"开关(Settings > Developer options > USB debugging).

开发者选择Debug 开关

③. 打开Settings > Developer options > Stay Awake
④. 有GPS的手机需要打开GPS

    1. 连接一个可以翻墙的WIFI网络
    1. 预备 Media 媒体包
    1. 测试环境搭建(PC端)

需要Linux系统电脑、ADB 的环境搭建、修改 adb 的权限等。

需要配置adb 环境

修改adb 权限

四、CTS 测试命令

  • 1.CTS 测试常用测试命令
测试项测试命令
1.全测命令run cts
2.3台一起运行命令run cts --shard-count 3
3.单测一项run cts –m <模块名> -t <单项名称>
4.继续测试run retry --retry (session id是l r查看结果,最前面的数字序号);
5.单测一个模块run cts –m <测试模块名>
  • 2.CTS 3台手机一起测试命令

CTS 3台手机一起测试命令举例

五、CTS 测试报告解读

CTS 测试结果会自动生成到android-cts/results中,会存储到日期加时间的文件夹中,其中的test_result_failures.xml可以用浏览器打开,查看详细的测试结果

六 、CTS测试套件文档目录结构

    1. CTS测试套件文档目录结构如下:

CTS测试套件文档目录结构

device-info-files 测试举例

    1. 部分目录解释如下:
名称作用
1.logs测试过程中抓取得log
2.results测试结果
3.device-info-files测试设备的信息
4.tools测试工具

七、CTS 测试过程中需要注意的地方

  1. 测试过程中需要SIM(联通)卡,白卡
  2. 测试GPS需要把手机放置到外边露天的地方测试
  3. 测试链接IPV6网络
  4. 测试国外的数据流量(香港卡)------针对9.0的项目
  5. 需插入T卡,设置成内部存储

第二部分:GTS 测试 内容

一、GTS 测试是什么

Google Mobile Services Test Suite,所谓的Google Mobile Services即谷歌移动服务
是谷歌开发并推动Android的动力,也是Android系统的灵魂所在

二、GTS 测试的意义

谷歌移动服务测试套件(Google Mobile Services Test Suite),谷歌移动服务提供了Search、 Search by Voice、Gmail、Contact Sync、 Calendar Sync、Talk、 Maps、 Steet View、 YouTube、 Android Market (Play store)等服务,当用户使用谷歌时,谷歌可以把各种广告嵌入到谷歌的服务中。

三、GTS 测试需要的准备工作

  1. 最新工具:7.0-r2
  2. GTS的环境安装、执行、报告分析这一系列操作和CTS类似,只是GTS必须连接VPN。
  3. user版本
  4. 设置手机、连接外网
  5. 打开蓝牙
  6. 显示中睡眠时间显示最大
  7. 语言选择英语
  8. 键盘选择谷歌键盘
  9. 打开定位、高精度
  10. 安全中锁屏选择None
  11. 在开发者模式中打开stay awake和USB debugging

四、GTS 测试命令

    1. GTS 测试命令 如下:
测试项测试命令
1.全测命令run gts
2.3台一起运行命令run gts --shard-count 3
3.单测一项run gts –m <模块名> -t <单项名称>
4.继续测试run retry --retry (session id是l r查看结果,最前面的数字序号)
5.特殊命令run gts -m GtsMediaTestCases --test com.google.android.media.gts.MediaDrmTest#testUsageTableCapacity --module-arg "GtsMediaTestCases:test-timeout:3600000"
    1. 单独测试某项举例:
      run gts -m GtsSettingsTestCases -t com.google.android.settings.gts.MADAComplianceTest#testMADACompliance

对应的fail 项

五、GTS 测试报告解读

测试结果存放地址:

六、GTS测试过程中需要注意的地方

  1. GTS测试9.0的项目需要插白卡
  2. 测试GPS
  3. 截屏信息

截屏信息举例

第三部分:STS测试 内容

一、STS 是什么?

主要是测试 Android Security Patch 是否生效,Goolge最新通告,2019年03月开始STS要全部pass。

二、STS 测试意义

Android Security Test Suite (STS). 是谷歌关于android安全补丁安装情况的一个测试套件STS和security patch相关的,是CTS测试新增加一项安全测试套件。STS是201808才开始测试的。Security patch日期在3个月内是GTS的一个case,如果不通过无法获得google认证。在18年5月之前谷歌对于security patch这个属性都是在build库下面跟着aosp更新的。现在需要通过STS之后由vendor来更新。STS需要通过userdebug版本的targetfile来生成一个user版本的结果

三、STS 测试准备工作

    1. 测试工具要和系统的安全patch相一致

Google STS 释放版本列表

    1. 测试版本
      测试需要使用userdebug版本。

不同平台需要不同的测试工具

Android 8.1 举例

    1. 准备刷好版本的测试机一台
      32位机子测试时间6个小时左右,64位测试时长8个小时左右
    1. 手机设置
      测试需要把锁屏的开关设置为none(Settings > Security > Screen Lock should be 'None').
      测试需要设置灭屏时间sleep设置为最长时间或者never
  • 链接翻墙 WIFI

四、STS 测试命令

    1. STS 测试命令如下:
测试项测试命令
1.全测命令run sts-engbuild
2.单测一项run sts-engbuild –m <模块名> -t <单项名称>
3.继续测试run sts-engbuild --retry (session id是l r查看结果,最前面的数字序号)
    1. STS 全测举例如下:

      STS 全测举例

五、STS 测试报告解读

    1. STS 测试报告目录

STS 测试报告目录与用途如下:

目录用途
logs测试过程中抓取得log
results测试结果
tools测试工具

STS报告目录

STS 报告头

六、STS 测试过程中需要注意的地方

    1. Security patch日期在3个月内

这是GTS的一个case,如果不通过无法获得google认证。
例子 :

GtsOsTestCases–com.google.android.os.gts.SecurityPatchTest#testSecurityPatchDate

否则会有明确报错,需要更新安全patch日期:

junit.framework.AssertionFailedError: ro.build.version.security_patch should be “2018-08” or later. Found “xxxx-xx-xx”
    1. fingerprint和user版本要求一致

第四部分:GSI 测试 内容

一、GSI 是什么

(Generic system image)— Reference AOSP system image通用系统映像上的兼容性测试套件
这个文件包也是签约获取授权后才能获取,Google也会定期更新GSI包Android O要求测试VTS和CTS on GSI,此时对应版本必须是GSI版本,测试包都为VTS。

二、GSI 测试的准备工作

    1. vts测试工具

0-r11 8.1_r17

    1. Media 媒体包

要求 CTS Media 1.4 及以上版本,在Android8.1的测试中,media文件要放在电脑中的/tmp/android-cts-media路径下,测试前不需要将Media文件拷贝到手机中,测试时会自动拷贝。如果/tmp/android-cts-media路径下没有media文件,将会从网上下载,由于文件比较大,比较耗时

    1. 替换谷歌system.img

VTS测试要求刷入谷歌提供AOSP的system.img (GSI)。在user版本中,如果直接使用flash tool单独烧录GSI时,会导致无法开机。之所以会出现这种问题,是由于在user/userdebug版本中,dm-verity是使能的,替换GSI后导致dm-verity不能通过。 如果要解决这个问题,就需要进行unlock操作,并且要用fastboot来刷入刷入谷歌提供的system.img .

    1. MTK 项目 替换system.img 操作方法

①在设置中打开 OEM unlocking 选项
②在设置中打开 USB debugging 选项
③长按音量 + 和电源键进入fastboot模式
或者执行

adb reboot bootloader

④连接到电脑上,分别执行fastboot flashing unlockfastboot oem unlock
⑤执行命令后需要选择音量 + 来确认unlock。
⑥执行 fastboot 命令刷入google提供的 system.img (GSI)
fastboot flash system system.img(需要根据软件版本的信息来选择GSI版本)
(Android P版本需要执行) fastboot flash vbmeta vbmeta.img
⑦重启:fastboot reboot

    1. 展讯项目替换system.img 操作方法

①展讯项目项目具体替换system.img操作如下:

刷版本过程中将system文件替换为system.img文件,正常刷机
(Android P版本需要执行) VB文件替换为最新的 vbmeta.img

②展讯平台Research DownLoad 单独替换方法:

展讯平台Research DownLoad 单独替换方法

    1. vts测试环境配置

安装 Python 开发工具包:

sudo apt-get install python-dev

安装协议缓冲区工具(适用于 Python):

sudo apt-get install python-protobuf protobuf-compiler

安装 Python 虚拟环境相关工具:

sudo apt-get install python-virtualenv python-pip
    1. Media 媒体包

要求 CTS Media 1.4 及以上版本,在Android8.1的测试中,media文件要放在电脑中的/tmp/android-cts-media路径下,测试前不需要将Media文件拷贝到手机中,测试时会自动拷贝。如果/tmp/android-cts-media路径下没有media文件,将会从网上下载,由于文件比较大,比较耗时

    1. 替换谷歌system.img

VTS测试要求刷入谷歌提供AOSP的system.img (GSI)。在user版本中,如果直接使用flash tool单独烧录GSI时,会导致无法开机。之所以会出现这种问题,是由于在user/userdebug版本中,dm-verity是使能的,替换GSI后导致dm-verity不能通过。 如果要解决这个问题,就需要进行unlock操作,并且要用fastboot来刷入刷入谷歌提供的system.img .

三、GSI 测试命令

    1. GSI 测试命令如下表格:
测试项测试命令
1.全测命令run cts-on-gsi -s+SN
2.3台一起运行命令run cts-on-gsi --shard-count 3
3.单测一项run cts-on-gsi –m <模块名> -t <单项名称>
4.继续测试run cts-on-gsi-retry --retry
5.单测一个模块run cts-on-gsi –m <测试模块名>
    1. 2台手机一起测试方法举例

2台手机一起测试方法举例

四、GSI 测试过程中需要注意的事项

  • 1.cts-on-gsi默认只测64位,但是如果后面加上-a armeabi-v7a的话,也能进行32位的测试;
    1. 时区设置问题,请把手机时区设置为上海,或者北京时区

第四部分:VTS测试 内容

一、VTS 是什么

VTS的全称是 Vendor Test Suite(供应商测试套件)

二、VTS 的测试意义

    1. 以前Android的系统升级是很麻烦的,为了能更快的将设备升级到新的Android版本,Android O 开始新引入了 Project Treble,Project Treble 适用于搭载 Android O 及后续版本的所有新设备。
    1. Android 7.x 及更早版本中没有正式的Vendor层接口,因此每次更新系统都相对耗时和困难:
    1. Android O 之后,Treble 提供了稳定的Vendor层接口,供设备制造商访问 Android 代码中特定于硬件的部分,这样就可以只更新框架层,减少升级系统带来的成本和困难:
    1. 为了确保Vendor层实现的前向兼容性,新的Vendor层接口会由供应商测试套件 (VTS) 进行验证,该套件类似于兼容性测试套件 (CTS)。

三、VTS 测试前的准备工作

替换谷歌system.img和gsi准备工作一样,替换img文件之前需要确保手机解锁,展讯的项目解锁如下:
使用unbuntu系统解锁
解锁前请先进入fastbootbootloader状态,指令如下:

1. adb reboot bootloader2. cd 到当前文件3. ./fastboot oem get_identifier_token(获取设备号)

  1. sudo ./signidentifier_unlockbootloader.sh 53433938363331413130313833323330313437 rsa4096_vbmeta.pem signature.bin rsa4096_vbmeta.pem密匙文件请自行到对应软件中获取

  2. sudo ./fastbootflashing unlock_bootloader signature.bin(用户根据相
    应提示使用“volume down”键进行解锁确认

四、VTS 测试命令

    1. VTS 测试命令如下:
测试项测试命令
1.全测命令run vts
2.单测一项run vts –m <模块名> -t <单项名称>
3.继续测试run vts --retry
4.单测一个模块run vts –m <测试模块名>

五、VTS 测试过程中需要注意的地方

  • 针对9.0项目,vts测试过程中需要插SIM卡和白卡
  • 测试过程中会测试fingerprint,要选择指纹锁正常的手机来测试
  • 会测试到GPS

第六部分:CTS-Verifier 测试 内容

一、CTS-Verifier 是什么

CTS Verifier算是CTS的一部分,需要手动进行,主要用于测试那些自动测试系统无法测试的功能,比如相机、传感器等。由于硬件配置或其他原因,不同手机上部分测试项目被隐藏,也就是说CTS Verifier中case的总数,取决于测试机支持哪些功能

二、CTS-Verifier 测试前的准备工作

  1. 把测试机刷成需要测试的版本。
  2. 安装*/android-cts-verifier/CtsVerifier.apk。
  3. 设置手机语言为English。
  4. 打开蓝牙,无需配对。
  5. 打开并连接可用wifi。
  6. 请再另外准备一台手机,以便测server和client相关的case。

    CTS-Verifier apk

     

三、CTS-Verifier 测试的主内容

  • 1.CTS-Verifier 测试的主内容 如下:

· Camera
· Clock
· Device administration
· Features
· Hardware
· Job scheduler
· Location
· Managed Provisioning
· Networking
· Notifications
· Others
· Projection tests
· Security
· Sensors
· Streaming

四、CTS-Verifier 需要注意的地方

    1. 每项测试均包含如下三个 Button(有些测试项 Pass/Fail 是自动进行判断的)
手动测试选项意义
Pass如果待测设备满足 Info 中说明的测试要求,单击 Pass 按钮
Info对该项测试方法的说明,它将出现在第一次进入该测试项或者每次单击 Info 按钮的时候
Fail如果待测设备不满足 Info 中说明的测试要求,单击 Fail 按钮
    1. 手动测试选项 举例

 

手动测试选项 举例

第七部分:CDD检查测试 内容

一、CDD检查是什么?

CDD checklist全称Compatibility Definition Document 安卓兼容性定义文档。

二、CDD 检查的意义

CDD列举兼容的Android设备的软件和硬件要求。
因为Android源代码的开放性,众多手机厂商都在Android源代码的基础上添加了自己的定制,可能包括从Linux kernel层到上面的framework层都有修改,为了打造一个共同的生态系统,让不同的APP开发者开发出来的APP在所有的Android设备上都能正常运行,保证用户的使用体验,Google就提出了一些限制,这些限制就是CDD文档。

三、CDD 检查的内容

  • 首先确认自己做的项目是哪个系统
    9.0 ,8.1 还是 7.0 ;然后确认是不是Go的项目,对Go的区分是以1g的RAM来要求的,大于1G的 都属于非Go;最后一定要知道这个项目是做哪种版本:init(初次送测) ,MR版本 , Smr版本 ,每个版本都有自己不一样的检查cdd的方式,输入adb shell pm list features查看什么类型的项目。

    1. 参与Google Funding项目应该为:com.google.android.feature.GMSEXPRESS_PLUS_BUILD
      具体测试标准参考mtk文档,必须按照文档检查下去。
    1. 不参与Funding普通项目之前设置的为:com.google.android.feature.GMSEXPRESS_BUILD,以后建议取消
    1. 俄罗斯项目应为:com.google.android.feature.RU测试标准也有文档,主要集中于测试Seacher
    1. 出欧洲项目应为:
                 
  • 6.查看 API Level

使用以下命令adb shell "getprop | grep first_api_level"可以查看API level。

Google 对不同版本的 API Level 要求如下:

Android 版本API level 要求
对于9.0项目不管Init还是MR版本 都需要设置为28
对于8.1项目Init项目需要设置为空;MR版本需要设置为27
对于7.0的项目Init项目需要设置为空;MR版本需要设置为24
对于6.0项目Init项目需要设置为空;MR版本需要设置为23
  • 7.Check Default Home Screen

Duo必须放在default home screen(适应于非Go项目)
Android Messages和Chrome必须放在Hotseat。

 

适应于非Go项目

  • 8.Check Google Folder 非Go项目

打开google文件夹按照“ 从左到右,从上到下” 的顺序,摆放core app (如右图)
分别有Google Search、Gmail、Maps、YouTube、Drive、Play Music(11月以后的新项目替换YouTu Music 老项目延续之前所用)、Play Movies、Photos

Google Folder 举例

    1. Check “ro.base_build” for Android P Devices

对于Android P GMS Express+设备 (不管是新版本还是维护版本), 请确保有设置该属性 “ro.base_build = noah” .

可用如下命令检查:

adb shell “getprop | grep ro.base_build”

MR版本 需要去掉base_os值 每个项目都需要查一下。

  • 10.检查Android P上的DNS 隐私模式设置

搭载 Android 9 或更高版本的 GMS 设备必须支持DNS over TLS ,并且必须提供UI界面,以便用户从 AOSP 中定义的关闭、自动或私人 DNS 提供商主机名之一中选择 DNS 隐私模式设置。
当设备在开箱后进行设置时,其默认的 DNS 隐私模式设置应为自动。

 

至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

来源地址:https://blog.csdn.net/m0_66587877/article/details/130659789

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

CTS/GTS/STS/VTS/CTS-Verifier

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录