谷歌CTS测试(cta测试)

CTS测试简介CTS兼容性测试的主要目的和意义在于使得用户在Android系统的应用过程中,有更好的用户体验,并展现出Android系统的优越特性;使得Android应用程序编写者更容易编写高质量的应用程序;充分展现AndroidMarket的优势,让获得CTS认证的终端得到AndroidMarket的使用许可.测试环境搭建测试包下载一共有两个包需要下载(CompatibilityTe

大家好,又见面了,我是你们的朋友全栈君。

CTS测试简介

CTS兼容性测试的主要目的和意义在于使得用户在Android系统的应用过程中,有更好的用户体验,并展现出Android系统的优越特性;使得Android应用程序编写者更容易编写高质量的应用程序;充分展现Android Market的优势,让获得CTS认证的终端得到Android Market的使用许可.

测试环境搭建

  1. 测试包下载
    一共有两个包需要下载(Compatibility Test Suite 和Media Files) Google每隔一段时间就会更新Compatibility Test suit测试包,一般公司会有专门的人去下载并共享这两个包,也可自行在
    https://source.android.com/compatibility/cts/downloads.html上下载。Compatibility Test Suite分Android平台,目前最新的是6.0_R8, 而Media Files最新为CTS Media 1.2.

  2. 测试环境搭建
    CTS一般是在linux系统上跑,比如Ubuntu.需正确配置JAVA JDK和Android SDK.
    将CTS测试包解压到/data(推荐)目录,新建一个CTS目录,可按版本再细分,比如/data/CTS/6.0/R7,路径名不要有中文或者空格.

  3. 测试前准备工作

    1. 下载需要进行测试的软件版本
    2. 连接IPV6翻墙网络
    3. 插入可用的SD卡,容量最好大于1G
    4. 插入可用的Sim卡,如果为双卡版本,需确保卡一的卡槽有可用的Sim卡.
    5. 写入合法的IMEI号

测试手机配置

  • 手机恢复出厂设置(Settings→Backup and reset→Factory data reset)
  • 确保SD中有足够的空间(大于1G),可将SD格式化清空。
  • 确保手机里没有Google账号或者其他账号存在
  • 确保日期和时间的正确(开了Wifi或者数据连接以后会自动更新时间,时区选默认的)
  • 设置屏幕为常亮(Settings→Display→Sleep→Never)
  • 设置无锁屏(Settings→Security→Set up screen lock→None)
  • 2.1_R2到4.2_R4之前,安装CtsDelegatingAccessibilityService.apk,
    (在android-cts/repository/testcases下,可用adb install安装),并进入Settings→Accessibility开启Delegating Accessibility Service.
  • 安装CtsDeviceAdmin.apk,(在android-cts/repository/testcases下,可用adb install CtsDeviceAdmin.apk),并进入Settings→Security→Device administrators开启里面的两个包
  • 将媒体文件(android-cts-media-1.2.zip解压出来的文件)拷贝到手机外部SD卡上,可使用脚本拷贝(在android-cts-media-1.0目录下执行bash copy_media.sh all)
  • 确保开发者选项中的USB debugging,Stay awake,Allow mock locations三个选项已勾选。
  • 设置系统语言为美式英语(Settings→Language &input→Language)
  • 设置系统输入法为谷歌默认输入法
    (Settings→Language&input→Default→English(US))
  • 打开Wifi,打开数据连接,打开GPS
  • 确保USB连接稳定
  • 确保测试开始时时在Home界面
  • 测试过程中,不要运行其他任务

执行测试

  • 整体测试

    进入/android-cts/tools,打开终端,用adb devices查看手机是否连上
    这里写图片描述
    如手机已连上,输入./ cts-tradefed进入测试环境

    注意
    若输入./cts-tradefed后出现如下错误(示例为在L版本上测试的)

yjliu@SWD-LIUYIJUN-D1:/data/CTS/5.0_R2/android-cts/tools$ ./cts-tradefed 
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/cts/tradefed/command/CtsConsole : Unsupported major.minor version 51.0

说明是Java版本不匹配,L版本的CTS测试,Java需要1.7,请切换到1.7再测试。

输入测试命令

run cts --plan CTS

即可进行整体测试

整个测试过程持续时间较长,可尽量选在晚上下班之后测试。 测试完成以后自动生成结果报告和Log,结果报告位于android-cts/repository/results目录下,用浏览器打开testResult.xml 即可看到测试结果。Log位于android-cts/repository/logs目录下。

  • 单项测试

    • 单项测试某个方法

      由于整体测试过程中有时候会由于网络差等因素造成某些测试项fail,我们需要对这些fail项进行单独的测试。可通过运行run cts –c CName –m MName进行单项测试(CName表示类名,MName表示方法名)
      对某一个fail项进行单项测试可执行如下命令:

      run cts -c libcore.java.net.InetAddressTest -m test_getByname

    • 单项测试某个类
      单独测试某个类 可用命令:run cts –c CName,如下为单独测试StreamingMediaPlayerTest类的命令

      run cts -c StreamingMediaPlayerTest

      注意
      A和B单独测试的时候类名必须写全路径 C:单独测试某个包 可用命令:run cts –p PName,如下为单独测试android.media包的命令

      run cts -p android.media

      单项测试会单独生成一个测试报告,如果想融进整体测试报告中,可将整体报告testResult.xml中的fail的替换成notExecuted。然后运行run cts –continue-session session_ID, session_ID为整体测试的ID,可通过l r查看,如果要将Session 0的fail项融进整体报告

      run cts –continue-session 0

      关于更多命令的用法,使用help查看
      为了排除环境等其他因素的影响,单项测试请至少测试三次

错误分析

1.错误项的分类
测试报告的fail项分为两类:一类是可以waive的,可以waive的项是谷歌自身的原因,经谷歌同意可以不用处理的项。另一类是需要我们分析修复的。 关于可以waive的选项,可以waive的选项一般会有一个表格维护,这个表格会不定时更新,可主动向相关人员索取。

2.常见错误项的分析处理

  • 如果不是google waive项,请查看log,在异常log的附近会有一些相关的信息,看能否找到原因
  • 如果在之前的版本上测试PASS,可定位一下OK版本和fail版本之间的代码提交,进而缩小排除范围
  • 有些时候想在测试包里面加一些LOG信息,可以自行编译工程代码的CTS,用来测试调试。
  • 若实在不能分析,可向平台商(如MTK)寻求帮助

提交正式报告注意事项

提交正式报告前需检查一下Root Processes,去掉不必要的信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128467.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月15日 下午10:00
下一篇 2022年4月15日 下午10:00


相关推荐

  • 文本分类——常用经典技术解析(jieba,word2vec,样本不平衡问题)「建议收藏」

    文本分类——常用经典技术解析(jieba,word2vec,样本不平衡问题)「建议收藏」一个文本分类任务的典型操作流程如下:即拿到数据后先分词,然后转化为词向量(数值化过程),最后对数值化后的数据进行分类。一、jieba分词原理jieba自带了一个叫做dict.txt的词典,里面有2万多条词,包含了词条出现的次数(这个次数是于作者自己基于人民日报语料等资源训练得出来的)和词性.这个第一条的trie树结构的词图扫描,说的就是把这2万多条词语,放到一个trie树(词典树…

    2022年9月30日
    4
  • 机器学习十大算法简介

    机器学习十大算法简介K-Means算法K-Means算法是一种聚类算法,把n个对象根据他们的属性分成k个分类,并且使这K个分割的内部相似度最大,而分割之间的相似度最小。其主要的算法流程如下:1.从n个对象中任意选K个对象,作为每个聚类的中心2.根据K个中心,按照每个对象离K个中心的最小距离(离那个中心近,就划分到哪个中心),将n个对象划分成K个分割(聚类)3.然后计a ge su a分割的中心(

    2025年5月28日
    5
  • Mapper.xml中的useGeneratedKeys[通俗易懂]

    Mapper.xml中的useGeneratedKeys[通俗易懂]mapper.xml中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名.例:<insertid="insertSelective"parameterType="com.xxx.StudentMistakeKpoints"useGeneratedKeys="true"keyProperty="id">…

    2022年6月24日
    43
  • pycharm下配置conda虚拟环境labelme

    pycharm下配置conda虚拟环境labelmepycharm 下配置 conda 虚拟环境文章目录 pycharm 下配置 conda 虚拟环境 1 下载 Anaconda32 安装 Anaconda3 使用 AdacondaPowe 创建虚拟环境 env4 pycharm 创建工程 使用虚拟环境 labelme5 打开 labelme 工具 1 下载 Anaconda3 在清华镜像下载 Anaconda3htt mirrors tuna tsinghua edu cn anaconda archive 2 安装 Anaconda3 使用 Ad

    2026年3月27日
    2
  • java反射原理简单介绍(java反射机制的应用)

    前面给大家介绍了一下什么是java反射机制,那么下面要给大家介绍的就是java反射机制的原理,那么它的原理究竟是怎样的呢?下面就通过下面来做一下详细的了解吧。首先我们再来介绍一下java反射机制。java反射机制就是java程序在运行的时候动态的创建类并调用类的方法以及属性。下面就来介绍一下原理。一、java反射机制原理下面是我们经常可以见到的反射例子:Class>clz=Class….

    2022年4月12日
    57
  • PyCharm 2021.5.3 x64激活码永久【在线注册码/序列号/破解码】

    PyCharm 2021.5.3 x64激活码永久【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    73

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号