VTS

Google VTS 测试简介
TEST_FAE
2018-2-7VTS简单介绍
供应商测试套件 (VTS—Vendor Test Suite)
当前Google主要是通过CTS测试来检测
Android系统的兼容性,但是CTS主要是
测试framework api,并不能全面覆盖所
有的兼容性要求,因此Google又推出了
VTS(Vendor Test Suite)测试,VTS主要
测试vendor接口,具体包括Kernel、soc、
HAL等
从Android O开始,Google要求
Android所有设备不仅仅需要通过CTS,
还必须通过VTS,而且VTS测试必须在
CTS之前完成VTS简单介绍
Android GMS Device Compliance - Nougat vs Oreo
Android CTS GTS CtsVerifier VTS CTS on GSI
N Y Y Y NO NO
O Y Y Y Y Y
Test
package CTS
package GTS
package CtsVerifier.
apk
SW
Version
OEM GMS
user version
VTS
package
replace system.img
user version
GSI (Generic system image)— Reference AOSP system image
这个文件包也是签约获取授权后才能获取,Google也会定期更新
system.img软件包,
如同上图所示,Android O要求测试VTS和CTS on GSI,测试包都为VTS,
版本包含Google system.image,相关升级办法展锐已给出。Google system.img
GSI是Google直接release的,通常情况下,每个月更新一次,开发人员需要有
Google合作伙伴开发账号,从Google官网下载。下载时需要注意,不同的平台
对应不同的GSI,具体情况如下:
ARM 32bit:8.1_r3_arm_a/8.1_r3_arm_ab
ARM 64bit:8.1_r3_arm64_a/8.1_r3_arm64_ab
X86_64:8.1_r3_x86_64_a/8.1_r3_x86_64_ab
X86:8.1_r3_x86_a/8.1_r3_x86_ab
从上面还可以看出,每个平台都有两个GSI,其中"xxxx_a"的,指的是non A/B
分区的;“xxxx_ab"指的是A/B分区的。目前展讯平台8.1用的是non A/B分区的,
所以下载时请选择”_a"后缀的GSI。 下载时需要根据测试手机的平台而定
下载了对应平台的GSI包之后,会发现Google每次发布的GSI包含多个img文件,
这些文件会以不同的日期来区分。实际上这些日期对应的是Security Patch
Level(SPL),例如:system_aosp_arm_a_20180101.img。当升级GSI时,就
需要根据自己版本中的SPL来选择对应的GSI img。VTS测试环境
Google已经发布VTS8.1_R3测试包,VTS测试包的获取和GTS一样是需要签
约获得授权方能获取,Google官网无法免费下载,Google会定期更新测试
包,从8.0(Android O)及之后开始,GTS/VTS/GSI等会一同更新并发布
测试包和软件版本
将获取到的VTS测试包放到Ubuntu Linux工作目录下解压并授权,待测使用,
测试版本,送Google认证的GMS user版本,一个是用已解锁机替换成
Google system.img文件的版本,
手机端设置
通过USB将Android设备与PC相连

  1. 使能开发者模式,通过Setting -> About Phone -> 连续点击‘Build
    number’选项
  2. 使能USB调试,Setting -> Developer options -> Turn on ‘USB
    ebugging’
  3. pc端终端运行adb devices
  4. 手机端确认PC勾选可信任解锁方法
    一、说明如下
  5. rsa4096_vbmeta.pem 密匙文件请自行到对应软件中获取:vendor
    /vendor/sprd/proprietories-
    source/packimage_scripts/signimage/sprd/config/rsa4096_vbmeta.pem;
    2.使用unbuntu系统解锁,到fastboot文件夹路径下,我们这边是将
    “fastboot/signidentifier_unlockbootloader.sh/rsa4096_vbmeta.pem”放在一
    个路径下,然后到该路径下按照文档说明解锁;
    3.解锁前请先进入fastboot bootloader状态,即:adb reboot booloader
    4.按照《android_device_lock-unlock使用说明.pdf》文档解锁。
    二、升级Google system.img文件方法有两种
    1.先升级测试CTS的user版本,然后到ubuntu系统通过adb fastboot升级
  1. adb reboot bootloader
  2. sudo fastboot flash –S 128M system <保存Google system.img的路径>
    然后待升级完成后,拔掉电池重新开机,开机后按照提示(音量键选择,
    电源键确认)恢复出厂设置后,再次开机,完成替换升级操作;
    2.将测试CTS的user版本用展讯的ResearchDownload工具打开加载完成,
    将DownSetting打开,File ID找到system选择
    将本地的Google system.img替换掉这个,再按照正常升级方式升级即可。VTS测试环境
    电脑端配置
  1. 64-bit Ubuntu Linux
  2. Java 8
  3. Python 2.7
  4. ADB 1.0.39
    ADB 1.0.39下载地址:
    https://developer.android.com/studio/releases/platform- tools.html
    注意:
    测试VTS时手机插上电脑如果出现端口“no permession”,电脑无法识别
    device,请配置Google usbid:
    $ sudo gedit /etc/udev/rules.d/51-android.rules
    在打开的文件中添加如下信息(如sprd已有不用再添加)
    #adb protocol on sprd
    SUBSYSTEM==“usb”,ATTR{idVendor}“1782”,MODE=“4002”,GRO
    UP=“plugdev”
    #Google
    SUBSYSTEM
    “usb”,ATTR{idVendor}==“18d1”,MODE=“0666”,GR
    OUP=“plugdev”
    保存后重电脑就会生效,输入adb device端口就能识别安装Python开发包
  5. 安装一些必须的python开发包,在终端执行以下命令
    a.安装python开发包
    $ sudo apt-get install python-dev
    b.安装 Protocol Buffer 工具
    $ sudo apt-get install python-protobuf
    $ sudo apt-get install protobuf-compiler
    c.安装 Python 虚拟环境相关工具
    $ sudo apt-get install python-virtualenv
    $ sudo apt-get install python-pip
    注意:
    • 如果apt-get在线安装过程中出现python包无法更新,将apt-get命令替换为
    aptitude解决问题,如$ sudo aptitude install python-dev;
    • 如果,“aptitude” ubuntu系统无法识别,可手动下载安装,aptitude安
    装包地址:
    https://packages.Ubuntu.com/trusty/aptitude,选择amd64安装(建议
    选择Asia下kr.archive.ubuntu.com/ubuntu)。VTS出现Pipe问题解决方案
    测试VTS出现以下fail,环境需要配置“vtspython.zip”,方法请参见文档
    《VTS测试出现pip错误解决方案》VTS测试方法
    VTS测试(类似CTS测试)
    $ vts-tradefed

run vts
run vts -m /单module测试/
run vts -m -t /
module中的某一个测试项测试
/
测试完成后,会在测试包路径下生成log文件和result文件,具体logs跟CTS类似
(timestamp为vts测试的时间戳)
a. log存放位置
$ vts/android-vts/logs/
host_log_.zip
device_logcat_.zip
b. result存放位置
vts/android-vts/results//test_result.xml
CTS on GSI 测试
CTS on GSI是在对应VTS测试包下完成测试的,而测试方法就是将“run vts”
换成“run cts-on-gsi”即可,其它指令也类似,报告和log也在对应目录下VTS 测试报告
Android O以后的Google认证测试对应需要提供五份报告
OEM user 版本测试 CTS/GTS/CtsVerifier,三份
Google system.img 版本测试 CTS/VTS ,二份
CTS
GTS
VTS on
GSI
Verifier
CTS on
GSI4G Rom+512M Ram CTS分步测试法
案例:TINNO K101 4G+512M;升级完版本,用户storage(手机内部存储剩余1.46G),
由于GSI版本T卡无法作为手机内存,所以为了完成cts-on-gsi测试需要按照以下办法分段测

1.在ubuntu Tmp目录下建立android-cts-media/android-cts-media-1.4文件夹,此时让文件夹
为空,里面不拷贝任何文件
第一次执行:run cts-on-gsi;大约测试20多个小时后,测试完成,查看结果后进行下一步操

2.Tmp/android-cts-media/android-cts-media-1.4目录拷贝以下视频文件image全部、
bbb_full/bbb_short目录下前三种分辨率
文件176×144/720×480/480×360;然后将测试机恢复出厂设置,开机重新设置retry步骤
“1”的结果,retry完成后,查看结果准备进行第三步操作
3.删除Tmp/android-cts-media/android-cts-media-1.4目录下bbb_full/bbb_short目录下前三
种分辨率
文件176×144/720×480/480×360;然后将原media-1.4文件里的bbb_full/bbb_short文件
仅包含“mp4_lib×264_libfaac”类型视频拷贝到Tmp/android-cts-media/android-cts-media-
1.4,然后将测试机恢复出厂设置,开机重新设置retry步骤“1”的结果,retry完成后,查看
结果准备进行下一步步操作
4.删除Tmp/android-cts-media/android-cts-media-1.4目录下bbb_full/bbb_short文件仅包含
“mp4_lib×264_libfaac”类型视频,再拷贝成bbb_full/bbb_short文件仅包含
“mp4_lib×265_libfaac”类型视频(替换),然后将测试机恢复出厂设置,开机重新设置
retry步骤“3”的结果,retry完成后,查看结果准备进行下一步操作
5.完成以上4个步骤的操作后,再查看测试报告,再对非CtsMediaStressTestCase这个
Module的fail项进行retry,直到结果达标为止。目前TR项说明
CTS
CtsOpenGlPerf-BufferNumbers fail 1 TR
CtsContent-VoiceCommand fail1 TR
CtsIncidentHostTestCases-ForegroundDuration/testWifiUpload fail 2 TR
CtsAutoFillServerTestCases fail 2 TR
CtsBluetoothTestCases-testOpportunisticScan fail 1 TR
CTS-ON-GSI
CtsAppSecurityHost-testApps fail 4 TR
CtsAutoFillService-ThenTapBack fail 2 TR
CtsOpenGlPerf-BufferNumbers fail 1 TR
com.android.server.cts.BatteryStatsValidation-testWifiUpload fail 1 TR
CtsNNAPITestCases-mobilenet fail 1 TR
GTS
GtsPermission-AppsTargetSdkVersion fail 1 TR
需要户外环境测试:CtsLocation-testPseudoPosition
GTS中GtsGmscoreHost 2 fail需要支持安全部署的机器写入Google key,如下
Android Attestation 2018-05-25_07-23-00.763_UTC.attest_keyboxes.V5.15272Android go performance
Android 8.1 go performance 是由Google提供的一个性能测试脚本,主要用其
测试apk的启动和所占内存d大小,
目前这个测试脚本主要是在ubuntu环境手动执行完成,测试结果自动生成,
详细测试过程请看《android_go_performance_tests_scripts_instructions.pdf》解答疑问
?THANK YOU!

猜你喜欢

转载自blog.csdn.net/baidu_41672657/article/details/83587271
VTS