Appium初始化流程分析
通过Appium桌面端日志分析Appium初始化流程:
主要的工作是通过adb完成的(这里分析adb初始化流程)
1.寻找已连接的Android设备
[ADB] Trying to find a connected android device
2.获取设备的信息:设备版本、根据设备版本匹配sdk版本、等待设备连接、检查设备连接状态
获取设备的版本:
[ADB] Running 'D:\Android SDK\AndroidSDK\platform-tools\adb.exe -P 5037 -s 127.0.0.1\:62026 shell getprop ro.build.version.sdk'
根据设备版本匹配对应AndroidSDK的版本:
[ADB] Current device property 'ro.build.version.sdk': 25
等待设备连接:
[ADB] Running 'D:\Android SDK\AndroidSDK\platform-tools\adb.exe -P 5037 -s 127.0.0.1\:62026 wait-for-device'
检查设备的连接状态:
[ADB] Running 'D:\Android SDK\AndroidSDK\platform-tools\adb.exe -P 5037 -s 127.0.0.1\:62026 shell echo ping'
3.装配Appium Settings应用:安装、授权、启动等(Appium的辅助程序,调用蓝牙、定位等功能需要用到)
安装:
[ADB] The upload of 'settings_apk-debug.apk' (1.15 MB) took 150ms
[ADB] Running 'D:\Android SDK\AndroidSDK\platform-tools\adb.exe -P 5037 -s 127.0.0.1\:62027 shell pm install -g /data/local/tmp/appium_cache/ca734d53854fd1368352eb1ad91806dc6e03622f.apk'
启动:
[ADB] Running 'D:\Android SDK\AndroidSDK\platform-tools\adb.exe -P 5037 -s 127.0.0.1\:62026 shell am start -n io.appium.settings/.Settings -a android.intent.action.MAIN -c android.intent.category.LAUNCHER'
4.端口映射(转发):通过Appium服务端的8200端口和设备端的6790端口建立通讯
注意:启动Appium时输入的端口号4723是用于与自动化脚本通讯,区别于8200端口
[ADB] Forwarding system: 8200 to device: 6790
5.安装io.appium.uiautomator2.server:设备端工作的服务(接收Appium发送过来的指令并且执行)
[ADB] The upload of 'appium-uiautomator2-server-v4.11.0.apk' (1.93 MB) took 163ms
[ADB] Running 'D:\Android SDK\AndroidSDK\platform-tools\adb.exe -P 5037 -s 127.0.0.1\:62027 shell pm install -r /data/local/tmp/appium_cache/01344cac04b875e34c3a26482ec05d7f3b053505.apk'
6.安装io.appium.uiautomator2.server.test:作为uiautomator2.server辅助程序,用于启动uiautomator2.server
[ADB] The upload of 'appium-uiautomator2-server-debug-androidTest.apk' (755.10 KB) took 147ms
[ADB] Running 'D:\Android SDK\AndroidSDK\platform-tools\adb.exe -P 5037 -s 127.0.0.1\:62027 shell pm install -r /data/local/tmp/appium_cache/3188d05a92585e7f2a2cb8880cea331370de08e6.apk'
7.启动被测的APP
[ADB] Running 'D:\Android SDK\AndroidSDK\platform-tools\adb.exe -P 5037 -s 127.0.0.1\:62027 shell am start -W -n com.lemon.lemonban/com.lemon.lemonban.activity.MainActivity -S'