当前位置:网站首页>谷歌CTS测试(cta测试)
谷歌CTS测试(cta测试)
2022-07-31 14:25:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
CTS测试简介
CTS兼容性测试的主要目的和意义在于使得用户在Android系统的应用过程中,有更好的用户体验,并展现出Android系统的优越特性;使得Android应用程序编写者更容易编写高质量的应用程序;充分展现Android Market的优势,让获得CTS认证的终端得到Android Market的使用许可.
测试环境搭建
- 测试包下载 一共有两个包需要下载(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.
- 测试环境搭建 CTS一般是在linux系统上跑,比如Ubuntu.需正确配置JAVA JDK和Android SDK. 将CTS测试包解压到/data(推荐)目录,新建一个CTS目录,可按版本再细分,比如/data/CTS/6.0/R7,路径名不要有中文或者空格.
- 测试前准备工作
- 下载需要进行测试的软件版本
- 连接IPV6翻墙网络
- 插入可用的SD卡,容量最好大于1G
- 插入可用的Sim卡,如果为双卡版本,需确保卡一的卡槽有可用的Sim卡.
- 写入合法的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版本上测试的)
[email protected]:/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.cn/128467.html原文链接:https://javaforall.cn
边栏推荐
- 组合系列--有排列就有组合
- C语言基础练(九九乘法表)与打印不同星号图案
- Redis 】 【 publish and subscribe message
- Shell script classic case: detecting whether a batch of hosts is alive
- Numbers that appear only once in LeetCode
- Nuget打包并上传教程
- The Selenium IDE of the Selenium test automation
- [QNX Hypervisor 2.2用户手册]9.14 safety
- 三角恒等变换公式
- 新款现代帕里斯帝预售开启,安全、舒适一个不落
猜你喜欢

Uniapp WeChat small application reference standard components

"Listen to me, thank you" can be said in ancient poetry?Tsinghua University has developed an artifact of "Searching Sentences According to Meaning", which can search for the famous sayings you want wi

多智能体协同控制研究中光学动作捕捉与UWB定位技术比较

Spark学习(2)-Spark环境搭建-Local

Analysis of the startup source code of hyperf (2) - how the request reaches the controller

LeetCode·304竞赛·6132·使数组中所有元素都等于零·模拟·哈希

技能大赛训练题:ftp 服务攻防与加固
![[Blue Bridge Cup Trial Question 46] Scratch Magnet Game Children's Programming Scratch Blue Bridge Cup Trial Question Explanation](/img/57/f23c21c7ed4b9701a3f6119bfd8493.png)
[Blue Bridge Cup Trial Question 46] Scratch Magnet Game Children's Programming Scratch Blue Bridge Cup Trial Question Explanation

尚硅谷-JVM-内存和垃圾回收篇(P1~P203)

2021 OWASP TOP 10 漏洞指南
随机推荐
Network cable RJ45 interface pins [easy to understand]
IDEA connects to MySQL database and uses data
jvm 一之 类加载器
自制的数据库安全攻防题,相关靶机自己制作
MySQL has played to such a degree, no wonder the big manufacturers are rushing to ask for it!
I summed up the bad MySQL interview questions
Nuget打包并上传教程
Architecture actual combat battalion module 8 message queue table structure design
【redis】发布和订阅消息
Sentinel服务熔断和降级
Unity学习笔记 关于AVPro视频跳转功能(Seeking)的说明
sentinel与nacos持久化
Combination series - there are combinations when there are arrangements
Resnet&API
OpenShift 4 - 用 Operator 部署 Redis 集群
“听我说谢谢你”还能用古诗来说?清华搞了个“据意查句”神器,一键搜索你想要的名言警句...
Nuget package and upload tutorial
Use of el-tooltip
Numbers that appear only once in LeetCode
DeepLab系列学习