2023年6月29日发(作者:)
ui⾃动化测试框架_⾃动化测试框架--InstrumentationAndroid测试环境的核⼼是⼀个Instrumentation框架,在这个框架下,你的测试应⽤程序可以精确控制应⽤程序。使⽤Instrumentation,你可以在主程序启动之前,创建模拟的系统对象,如Context;控制应⽤程序的多个⽣命周期;发送UI事件给应⽤程序;在执⾏期间检查程序状态。Instrumentation框架通过将主程序和测试程序运⾏在同⼀个进程来实现这些功能。通过在测试⼯程的manifest⽂件中添加元素来指定要测试的应⽤程序。这个元素的特性指明了要测试的应⽤程序包名,以及告诉Android如何运⾏测试程序。在Inustrumentation TestRunner章节有更多的细节描述。下⾯的图⽚概要的描述了Android的测试环境Instrumentation TestCase类继承⾃JUnit TestCase类,并可以使⽤Instrumentation框架,⽤于测试Activity。使⽤Instrumentation,Android可以向程序发送事件来⾃动进⾏UI测试,并可以精确控制Activity的启动,监测Activity⽣命周期的状态。基类是InstrumentationTestCase。它的所有⼦类都能发送按键或触摸事件给UI。⼦类还可以注⼊⼀个模拟的Intent。⼦类有:ActivityTestCase——Activity测试类的基类。SingleLaunchActivityTestCase——测试单个Activity的类。它能触发⼀次setup()和tearDown(),⽽不是每个⽅法调⽤时都触发。如果你的测试⽅法都是针对同⼀个Activity的话,那就使⽤它吧。SyncBaseInstrumentation——测试Content Provider同步性的类。它使⽤Instrumentation在启动测试同步性之前取消已经存在的同步对象。ActivityUnitTestCase——对单个Activity进⾏单⼀测试的类。使⽤它,你可以注⼊模拟的Context或Application,或者两者。它⽤于对Activity进⾏单元测试。Instrumentation TestRunnerAndroid提供了⾃定义的运⾏测试⽤例的类,叫做InstrumentationTestRunner。这个类控制应⽤程序处于测试环境中,在同⼀个进程中运⾏测试程序和主程序,并且将测试结果输出到合适的地⽅。IntrumentationTestRunner在运⾏时对整个测试环境的控制能⼒的关键是使⽤Instrumentation。注意,如果你的测试类不使⽤Instrumentation的话,你也可以使⽤这个TestRunner。当你运⾏⼀个测试程序时,⾸先会运⾏⼀个系统⼯具叫做Activity Manager。Activity Manager使⽤Instrumentation框架来启动和控制TestRunner,这个TestRunner反过来⼜使⽤Intrumentation来关闭任何主程序的实例,然后启动测试程序及主程序(同⼀个进程中)。这就能确保测试程序与主程序间的直接交互。最后,利⽤Android InstrumentationTestRunner 执⾏单个case:adb shell am instrument -e pAutomationTool#testLayerCancelButton -w vi/mentationTestRunner命令解析如下:start an Instrumentation: am instrument [flags]-r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT)-e : set argument to-p : write profiling data to-w: wait for instrumentation to finish before returning-e后⾯加参数 class就可以指定⼀个测试类,⾥⾯包含了若⼲个测试⽅法。按照android帮助⽂档⾥⾯的名称,testsuite包含了若⼲个testcase,⼀个testcase其实就是⼀个测试类。
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688020893a67421.html
评论列表(0条)