跑起了第一个实例,我们先来看一下appium的log,来帮助我们更好的理解它的运作过程,从启动app到它完全结束
图中(1)启动REST http服务器,默认监听本地4723端口,用于接收客户端(Test Case+Selenium/Appium Driver)发过来的JSON格式的命令指示
(2)根据客户端提供的capabilities指示建立一个Android Sesision用于跟客户端保持后续通信
(3)检查设备信息,“adb devices”我们可以检查出设备号
(4)安卓手机shell调用命令获得机器的API Level是否已经超过18:"adb.exe -s HT21atd05099 shell getprop ro.build.version.sdk",并且通过adb执行相应的shell命令检查目标应用是否已经存在
(5)建立Appium Server到目标机器上的端口转发
(6)把AppiumBootStrap.apk push到目标设备:这是目标机器上通过uiautomator工具(框架)运行的服务端,用于接受处理client端发送过来的命令
(7)把settings_apk-debuug.apk和unlock_apk-debug.apk push到目标设备:TBD
(8)保证uiautomator没有已经在跑
(9)通过adb把目标机器上的AppiumBootStrap跑起来:"uiautomator runtest AppiumBootstrap.jar -c io.appium.android.bootstrap.Rootstrap".
(10)将apk push到手机
(11)通过adb在目标机器上 Launch应用
(12)通知PC端目标应用启动成功
(13)bootstrap把接受到的命令入队列,执行完成后通知客户端执行结果,往后都是如此
(14)测试完成,跑完用例
(15)关闭logcat
(16)关闭uiautomator
(17)一段时间内没有动作的话手机应用自动退出
关于appium bootstrap解析请戳此处--->