最近公司在推进海信 RK3128H的项目,需要过谷歌CTS认证,基于Android 4.4和Linux内核3.10版本,测试项居然有20多个audio的fail(心里mmp~~~),这也是我第一次测试CTS,完全是从零开始,好在我不耻下问,头脑发达,聪明伶俐(哈哈),总算把全部fail项pass,以下是我的总结和归纳,对小白来应该会有点帮助。
先声明一点,由于我是做音频的,所以测试项主要是media大类,所用测试apk为CtsMediaTestCases.apk,其他大类有另外的测试apk,不过方法都是类似。
话不多说,进入正题,首先管理sdk的人会把所有的测试类都测一遍,然后把个模块测试fail项分给各模块负责人,拿到测试报告类似如下:
![](https://i-blog.csdnimg.cn/blog_migrate/63edf3922b2f7d23fd6924042b5b2609.png)
这里面android.media.cts.MediaPlayerTest是一个测试类,里面有许多的测试项,这里的fail了8项测试项。具体debug的时候需要一个测试项单独debug,加快debug速度,就需要adb命令来测试单个用例。
测试步骤如下:
1、安装测试apk,比如adb install CtsMediaTestCases.apk
2、找到本机的测试用例:
pm list instrumentation
![](https://i-blog.csdnimg.cn/blog_migrate/2e912eeec1ef6bbc2b49b8b5e440415f.png)
3、想测试整个包,就使用命令:
am instrument -w com.android.cts.media/android.test.InstrumentationCtsTestRunner
4、想测试单个用例,如上面的android.media.cts.MediaPlayerTest,使用命令:
am instrument -e class android.media.cts.MediaPlayerTest -w com.android.cts.media/android.test.InstrumentationCtsTestRunner
5、想debug单个用例的单个case,如testPlayerAudio,在用例后面加#应用,如下命令:
am instrument -e class android.media.cts.MediaPlayerTest#testPlayerAudio -w com.android.cts.media/android.test.InstrumentationCtsTestRunner
输入命令前,adb或者串口抓取log,就能抓到测试过程中的日志,用于分析fail原因。
最后总结:分析测试用例代码,对于过测试项和分析fail原因至关重要,代码在根目录的cts目录!