• 简析Android 兼容性测试框架CTS使用


    一、什么是兼容性测试?

      1)为用户提供最好的用户体验,让更多高质量的APP可以顺利的运行在此平台上

      2)让程序员能为此平台写更多的高质量的应用程序

      3)可以更好的利用Android应用市场

    二、CTS覆盖领域

     1)签名测试:针对每个Android正式版,都将附带一系列XML文档对所有的公共API签名进行描述。CTS将检查这些签名是否适用于该设备,并保存其结果。

     2)平台API测试:测试SDK中平台核心库和Android应用程序框架的API是否正确

     3)Dalvik虚拟机测试:集中测试Dalvik虚拟机

     4)平台数据模型测试:测试通过content provides 暴露给程序员的平台数据模型中的核心部分,如联系人,浏览器和设置等应用

     5)平台intents测试:测试在SDK中定义的可用平台intents中的核心部分

     6)平台权限测试:测试在SDK中定义的可用平台权限中的核心部分

     7)平台资源测试:测试在SDK中定义的可用资源类型中的核心部分,如simple values/drawables/nine-patch/animations/layouts/styles/themes

     

    三、CTS运行前的准备工作

     1)熟悉CDDCompability Definition Document),兼容性规范文档。CTS所测试的一切为了确保设备符合该规范,所以我们测试之前必须要对CDD中提出的要求非常熟悉才行

     2)CTSCompability Test SuiteCTS的测试套件,用于实际测试运行所用

     3)CTS Verifier 的应用,它将直接安装在手机上,主要用于硬件及CTS测试套件难以测试的一些偏功能型的接口测试,比如CameraGPS和各种sensor

     

    四、下载地址:

    http://source.android.com/compatibility/downloads.html

    这里由于天国对网络的限制,上面网址访问不了,建议注册一个GreenVPN,非常好用

    http://gjsq.me/16647406 (合作推广链接,并非钓鱼网站)注册跳转页面

     

    五、CTS运行前配置

    1)确保Text 和 Speech文件都被安装到设备中。可到Setting-->Speech synthesis ——>Install voice data 中检查

    2)确保设备包含外置SD卡且该卡为空

    3)运行CTS前需要回复出厂设置

    4)确保屏锁已经关闭

    5)确保未知资源已开启

    6)确保USB调试选项已被勾选

    7)确保屏幕常亮已被勾选

    8)确保Allow mock location已被勾选

    9)确保设备已连接上可用的Wi-Fi网络

    10)确保语言已经切换成英文

    11)确保当前屏幕为主页

    12)当设备在运行测试用例是,不允许再动它

    13)当CTS运行时不允许按下设备上任何物理按键,按下按键可能会干扰正常测试,从而导致测试失败

    14)在执行CtsDelegatingAccessibilityService应用:

    在repository/testcases文件夹下

    打开服务 Setting>Accessibility>Delegating Accessibility Service

    15)在执行administration测试包前需要执行以下两步

    安装CtsDeviceAdmin应用

    在repository/testcases文件夹下

    打开服务:Setting>Security>Device Administrators >Enable

     16)在执行CTS media压力测试前需将CTS media 问价拷贝到设备中,并进行调整

     

    六、CTS的命令及运行

    输入命令进入cts-tradefed文件所在的路径,确保一台设备已连接,在CTS命令控制台下课运行CTS脚本,如运行cts-tradefed的方式为:

    #./cts-tradefed

     

    1)查看执行测试计划

    Cts-ft>list plans   //简化版 l  p

    不同版本测试计划基本一样,可分七种

     CTS:运行所有的兼容性测试用例,目前暂时不包括性能测试用例

     Signature:对签名的所有的公共接口进行验证

    Android:对Android的接口进行测试

    Java:对Java核心库进行测试

    VM:对Dalvik虚拟机进行测试

    RefAPP:对参考应用进行测试

    Performance:对性能进行测试

     不明白可以执行help命令

     

    2)查看有哪些测试包

    Cts-tf>list packages  //简化版 l packages

    执行某个测试包

    Cts-tf>run cts --package<package_name>

    测试util包

    Cts-tf>run cts --package android.util

     

    3)单独测试某个用例

    Cts-tf>run cts -c <package name> -m <testcase_name>

     

    4)查看结果

    Cts-tf>list result //简化版  l  r

     

    测试报告会在repository/results文件夹下

     

    5)如何对失败的测试项进行再测试

    Cts-tf>l r //查看测试结果

    其次根据start time时间,确定你要的任务的session编号例如20

    命令:

    Add derivedplan --plan plane_name -s session_id -r [pass/fail/notExecuted/timeout]

     

    例如:

    Add derivedplan -plan plane_name -s 20 -r fail

     

    最后执行命令开始测试

    Run cts -plan <plane_nasme>

     

    备注:后期再编辑添加实践图片进行详解

    最后感谢联想许奔的《深入理解Android自动化测试》

  • 相关阅读:
    Linux的中文输入法Fcitx-国货精品
    Linux内核编译与安装[转]
    Linux内核编译与安装[转]
    修改镜像地址加快Ubuntu更新速度
    修改镜像地址加快Ubuntu更新速度
    OSX操作技巧:快速锁定系统(类似Windows+L)
    NDK编程入门笔记[转]
    NDK编程入门笔记[转]
    内置函数图形分类
    函数的定义
  • 原文地址:https://www.cnblogs.com/zhoumiao/p/5462651.html
Copyright © 2020-2023  润新知