欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

GMS认证自我总结

程序员文章站 2022-07-08 12:33:10
这篇博客是第一份工作离职之后写的,现在迁移到CSDN上来,以此来记录第一份工作任着研发的职,干着测试的工作(也是主要离职原因之一),以下是正文:离职一段时间了,一直想写这篇博客,但是没有时间,最近有空,正好总结一下在上家公司一个开发做着一部分测试工作内容,当时也是没办法Google查得越来越严,公司岗位分工还将GMS认证划分为一个岗位,开发自己的项目只能自己跑GMS认证,因此我又多掌握一项技能嘿嘿 ,虽然没什么用:(。GMS操作文档GMS 本来只有三种测试 CTS、GTS、CTS-Verifier...

引言

这篇博客是第一份工作离职之后写的,现在迁移到CSDN上来,以此来记录第一份工作任着研发的职,干着测试的工作(也是主要离职原因之一),以下是正文:

离职一段时间了,一直想写这篇博客,但是没有时间,最近有空,正好总结一下在上家公司一个开发做着一部分测试工作内容,当时也是没办法Google查得越来越严,公司岗位分工还将GMS认证划分为一个岗位,开发自己的项目只能自己跑GMS认证,因此我又多掌握一项技能嘿嘿 ,虽然没什么用:(。

GMS操作文档

  1. GMS 本来只有三种测试 CTS、GTS、CTS-Verifier
  2. 但是在Android O版本之后,Google新加了两种测试VTS、GSI。
  3. 据说最近Google又增加了一项测试STS(Google还真是搞人啊哈哈),CVE安全测试,看了内部文档,据说10月1日,所有项目送测STS报告是必须的了。
  4. 以上除了CTS-Verifier是手动测试之外,其他的都是自动化执行工具脚本测试。

GMS测试工具

  根据项目送测时间选择一个适合工具版本,这个一般SPM会给到测试。规定用什么版本工具

  • CTS-Verifier

    这个测试可以看mtk online视频,没有的可以根据手机上APK英文流程自己解读操作,对于新手来说最繁琐麻烦的就是这个,多做几个项目熟练熟练,这样测试的周期会大大缩短。

    https://onlinesso.mediatek.com/_layouts/15/mol/topic/ext/TopicHome.aspx

    账号:…
    密码:虽然离职,但也不能透露哈哈
    GMS认证自我总结
     搜索CTS快速入门,有waiver(豁免)项,以及Verifier视频等等。

CTS、GTS、VTS、GSI这四个测试大同小异,只不过VTS、GSI测试,手机需要刷system。

  • CTS

(各种测试包括(需要IPV6)网络、camera、蓝牙、wifi 、sensor等等等等) (这个单台手机测试一般比较久两三天,建议三台机器一起跑,其中高通(64位和32位)和MTK的还不一样,高通测试项是MTK的2倍)

1. 手机端环境:

  1、设置手机好环境,官方文档有,这里不再描述。
  2、写好IMEI号、MAC(连WIFI)地址号、Google key
  3、(Ubuntu系统)电脑连接手机拷贝media和image文件,进入到改目录命令行模式。

执行红框两个脚本,“-s 设备序列号”表示拷贝到指定的手机设备上,很多命令都可以利用-s 来指定手机设备,例如:”adb -s 设备序列号 install a.apk”为指定设备来安装a这个apk应用,之后的运行cts命令也可以看到-s这个命令,来指定某台设备跑这个命令。(当然电脑上面只连接一台设备也就没必要用-s来指定设备)

./copy_images.sh -s 设备序列号(adb devices可查询)
./copy_media.sh all -s 设备序列号(adb devices可查询)

GMS认证自我总结
PS:低存储设备,自己在手机新建文件夹,然后复制部分分辨率的,然后下次retry再复制之前没有的。

2. 执行脚本运行:

手机端准备完成就在Ubuntu电脑终端进入指定的cts工具的tools目录
GMS认证自我总结

进入到对应的tools目录的终端大致是这样的,然后运行脚本./cts-tradefed
GMS认证自我总结

在这个目录下运行完脚本就正式完成了跑cts所有准备工作,之后就是运行cts命令了

  • 运行cts命令:

    run cts --plan CTS  运行cts
    run cts --plan CTS --shards 3 三台手机同时跑增加速度
    run cts --plan CTS --shards 3 -s 设备序列号1 -s 设备序列号2 -s 设备序列号3
    

有时候一台电脑上有很多机器又要同时跑三台,就用上面这条命令,三台同时跑,并且利用 -s 指定三台需要跑的三台机器。
 不知道设备序列号可以在已经运行cts脚本下的终端插拔USB线来查看自己想要的设备序列号

如下图就是指定 123456654321这个序列号的设备跑CTS
GMS认证自我总结

一般执行这种非Verifier的GMS认证,跑完一遍会有很多fail以及很多没有执行完的模块,这时候就需要在之前报告基础上retry,每次跑完CTS、GTS等等都会生成报告(中途不中断,可以通过拔掉手机中断生成报告,中断脚本是不能生成报告的,即使你只有一项了)。

这时候cts目录就变成这样的results和logs就是对应的结果以及log。
GMS认证自我总结

这时候报告名称就是对应的测试执行开始的时间。(一个压缩包和文件夹)
GMS认证自我总结

如下图通过 l r (list results的缩写)命令可以查看报告的信息,有对应的报告信息.
GMS认证自我总结

★ l r信息解读

1.  图中有(0-6)7个报告,每一行就是一个报告信息,不断增大sessionid就是在每个之前报告基础上retry的
2. 红框表示pass项、fail项以及执行模块数和总共模块数

弄清楚了这些报告信息,这时候就需要retry命令,(retry之前最好恢复出厂设置,重新设置手机端环境)

run cts --retry session_id(如上图通过l r查询对应要retry的报告session id) -s 设备序列号

多retry几次之后发现fail项并没有减少,说明这就是软件问题,有可能有时候手机的外界环境也会影响(如室内亮度、IPV6网络、GPS信号等等)一些test项fail。

之前mtk online cts快速入门上也提过waiver项,意思是跑完之后有些fail项是不用管了,google提供豁免id,交给SPM把waiverid代理就OK了

  • GTS

(主要和网络有关,一般网好一个下午就OK,不好,一项要执行很久,还不pass,这是最悲催的)

GTS与CTS基本一样把执行脚本的命令改成./gts-tradefed
GTS不需要IMEI和拷贝media和image这一步,主要和网络有关
以及运行的命令run cts改成run gts就行了
有时候会遇到特殊情况
GMS认证自我总结

如上图,就需要在命令后面加上红框内容,来忽略一些条件

  • GSI (与CTS差不多,运行比较久,所以也建议3台机器跑)
  1. VTS和GSI与CTS和GTS除了使用的工具不同之外,就是需要刷system.img
    GMS认证自我总结

上图对应32位机器和64位机器的包。

GMS认证自我总结

解压完成之后里面大概就是对应日期的system.img。这里只会用到一个,
 具体刷哪一个就需要通过about_phone 查看对应google patch日期。
 注意:在刷system之前需要把IMEI、MAC、Google key都写上,刷完之后就不能写了。

  1. 打开对应目录的终端,打开手机开发者模式下的Unlock OEM,然后连接手机执行下面命令,这个可能要问人操作
adb reboot bootloader  (adb命令重启进入bootloader,刷system要进入)
fastboot flashing unlock   
fastboot oem unlock    (执行完这一条命令,手机屏幕会有选项,按Volum +)
fastboot flash system system-aosp_arm_a-2018-04-05.img(这个就是该目录对应的文件,看googlepatch刷几月几号的)
fastboot reboot  (fastboot模式下手机重启)

重启完之后就是一个已经刷完system手机,和原生一样,会发现少了很多第三方的app,按照CTS配置运行命令。

GSI和VTS都是统一脚本下,所以是 ./vts-tradefed
命令把 cts改成cts-on-gsi就行了
有时候运行没成功会报preconditions错误,意思是一些先决条件检查不正确
这时候如GTS 的ingore错误在命令后面加上–skip-preconditions就能运行起来了。
(同时跑几台机器、retry等等和cts一样不在赘述)

  • VTS(一般3个小时就Ok了,比较快)

./vts-tradefed执行脚本,命令cts改成vts

以上像–shards、–retry、-s等命令都是共用的,不分工具,分工具的就是有cts、vts、gts、cts-on-gsi,这四个字符串了。

拓展

1、有时候SW更新软件需要验证某一个单项是否OK,以cts为例,通过result看报告
GMS认证自我总结

run cts -m CtsLegacyTest26ApiSignatureTestCases -t android.signature.cts.api.SignatureTest#testSignature

上面命令就是运行cts单项 : run cts -m 模块 -t test项

2、run cts --help 查看某个命令意义,这里只截取一部分,
GMS认证自我总结

3、下面这个命令就是要retry(retry的意思是只想这个报告里面的fail项)某个报告,然后跳过某个模块的命令

run cts --retry session_id(需要retry的某个报告) --exclude-filter 模块

4、有时候需要在别的电脑上retry已经有的报告

这时候就需要把报告拷贝的results目录下,然后再运行脚本之后的终端上

l r 查看你拷贝到results目录下(刚解压的工具一般没有,自己新建results目录拷贝进去)的报告,执行retry命令

5、当跑起来时候,最好是看到有pass,然后在运行脚本的终端下用 l d(list devices缩写)查看该脚本中运行的设备,最后应该就可以溜了:D。

其他

1、据说工具包cts 8.1-r6(包括8.1-r6)之后的运行cts 命令变了,没试过

run cts-suite --shard-count 3

Cts变成cts-suite , --shards 变成--shard-count

2、工具GTS 6.0-r1(包括)的retry命令也变了

run retry --retry session_id(l r可以查询已经完成跑完结果的报告)

原retry命令:run gts --retry session_id

总结

四个脚本工具测试中,

 1、所有手机端设置大致都是一样的
 2、CTS、GSi要拷贝media、image文件到手机中
 3、GSI和VTS是用同一个工具,并且都要刷对应google patch日期的system
 4、CTS和GSi时间比较久,三台一起跑的话大概一天完成、GTS、VTS比较短。

本文地址:https://blog.csdn.net/qq270827204/article/details/108851755

相关标签: Android系统