appium教程_2.概念加深
启动步骤
安卓,driver为uiautomator2
通过查看appium server的日志来看整个启动过程
- 启动server,默认4723端口
- 通过/wd/hub/session接口,创建session,通过传参中的desired capabilities指定启动参数
- 通过本地的adb命令获取设备信息和设备API
如上图,device api是 19,这是一台安卓4的设备,后续我换成了安卓8的设备,api devel=27
- 给手机安装appium setting应用)
- 判断是否安装了appium setting应用
- 启动appium setting应用,进行一些设置
- 设置端口forward,用于UiAutomator2 Server,电脑端是8201 to 设备端的6790
- 判断是否安装了 uiautomator2.server
- 已安装的话,比较版本,安装较新的版本
- 签名
- 是否安装uiautomator2.test
- 已安装的话,比较版本,安装新的
- 签名
- 确认手机端的appium环境(instrumentation)是否OK,启动uiautomator2 server
- 启动服务,等待连接
- 通过session 获取设备信息
- respond 客户端,已经创建好了seesion
- 业务操作,我这里是获取当前current_activity
- 超时,自动delete seesion,默认60s
再看UiAutomator2
When client request to create a new AndroidDriver session, client passes desired capabilities to the appium node server. Based on the automationName
property in the desired capabilities, appium redirects to the corresponding driver module (by default appium passes to appium-android-driver on the absence of automationName
)
If the automationName
is uiautomator2
then appium redirects to appium-uiautomator2-driver to create the new session.
UIAutomator2 Driver Module: Creates the session , installs the appium uiautomtor2 server apks on the device, starts the server(Netty) and initiates a Netty server session.
UIAutomator2 Server Module: Once Netty server session initiated by driver module, server continues to listen on device for requests and responds accordingly until DELETE SESSION gets invoked.
再看流程
- 服务端启动端口,持续监听,默认为4723端口
- 客户端,通过http协议连接服务端,通过desired_caps来指定驱动,本例子为(UiAutomator2)
- UiAutomator2 driver收到请求后创建session,准备环境
- 安装appium setting
- 安装uiautomator2 server
- 安装uiautomator2 test
- 设置端口forwart,电脑端(或者说server端)8201 转发到 手机端(或者说设备端)6290
- 启动环境,ready
- 应答client端
- 收到session创建ok的应答后,通过http请求发送指令
- server端在60s(默认超时时间)没有收到请求,自动删掉session