使用Instrumentation命令测试cts apk

作者: android之子 | 来源:发表于2018-02-10 11:23 被阅读225次

    最近在android tv的项目,我负责媒体相关模块,为了更好的调试cts,gts某个模块的测试用例,加快debug速度,可以用adb使用命令来测试单个用例。使用am Instrument命令来完成本地测试debug,不需要依赖cts的整个测试包环境。

    首先说下instrument是什么,instrument为am命令的一个子命令。用于启动一个Instrumentation测试。首先连接手机或者模拟器,通过adb shell命令,进入shell层进行操作。其实他还有很多功能,比如我们应用可以通过使用instrument,注册hook到系统的框架中,具体以后有机会我整理下,今天我们就说明下命令使用。

    命令格式:

     instrument [-r] [-e ] [-p ] [-w]         [--user | current]         [--no-window-animation] [--abi ]      
    Start an Instrumentation.  Typically this target is in the     form / or only if there     is only one instrumentation. 

    Options are:     

    -r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT).  Use with  [-e perf true] to generate raw output for performance measurements.     

    -e : set argument to .  For test runners a         common form is [-e [,...]].     

    -p : write profiling data to      

    -m: Write output as protobuf (machine readable)     

    -w: wait for instrumentation to finish before returning.  Required for  test runners.   

     --user | current: Specify user instrumentation runs in;  current user if not specified.     

    --no-window-animation: turn off window animations while running.     

    --abi : Launch the instrumented process with the selected ABI. This assumes that the process supports the selected ABI

    各项参数:

    -r:以原始形式输出测试结果;该选项通常是在性能测试时与[-e perf true]一起使用。

    -e name value:提供了以键值对形式存在的过滤器和参数。例如:-e testFile (运行文件中指定的用例);-e package (运行这个包中的所有用例)……  有十几种。 

    -p file:将分析数据写入file。

    -w:测试运行器需要使用此选项。-w / :和在测试工程的AndroidManifest.xml中查找,作用是保持adb shell打开直至测试完成。

    --no-window-animation:运行时关闭窗口动画。

    --useruser_id | current:指定仪器在哪个用户中运行;如果未指定,则在当前用户中运行。

    命令使用:

    测试提供以下步骤:

    1.安装测试apk,比如adb installGtsMediaTestCases.apk

    2.找到本机的测试用例:pm list Instrumentation

    3.如果想测试整个包,使用命令:

    am instrument  -w com.google.android.media.gts/android.support.test.runner.AndroidJUnitRunner

    4.如果想单个某个case使用以下命令:

     am instrument -e -r class com.google.android.media.gts.WidevineYouTubePerformanceTests#testL1Cenc1080P60 -w com.google.android.media.gts/android.support.test.runner.AndroidJUnitRunner

    测试通过的:

    测试失败的:

    class可以去掉#testL1Cenc1080P60就是测试整个类。

    5.运行所有测试用例除了指定的类:adb shell am instrument -w -r -e notClass com.google.android.media.gts.WidevineYouTubePerformanceTests com.google.android.media.gts/android.support.test.runner.AndroidJUnitRunner

    6.运行所有测试除了指定的用例:adb shell am instrument -w -r -e notClass com.google.android.media.gts.WidevineYouTubePerformanceTests#testL1Cenc1080P60 com.google.android.media.gts/android.support.test.runner.AndroidJUnitRunner

    7.以上所有参数也可以通过标签配置在AndroidManifest文件,比如 ,通过shell命令 传入的参数将覆盖AndroidManifest文件中配置的参数。

    相关文章

      网友评论

        本文标题:使用Instrumentation命令测试cts apk

        本文链接:https://www.haomeiwen.com/subject/hpyctftx.html