appium运行时安装的2个应用:Appium Settings和Unlock。
appium的加载过程
bootstrap是Appium运行在安卓测试机傻姑娘的一个UIAutomator测试脚本,该脚本的唯一功能就是在目标机器开启一个socket服务器来把一个session中Appium从PC端过来的命令发送给UiAutoamtor来执行处理。
它会监听4724端口获得命令,然后交给UiAutomator来处理。
首先,bootstrap是uiautomator的测试脚本,它的入口类bootstrap继承于UiautomatorTestCase,所以Uiautomator可以正常运行它,它也可以正常使用uiautomator的方法,这是就是appium的命令可以转换成uiautomator的关键;
其次,,bootstrap是一个socket服务器,专门监听4724端口过来的appium的连接和命令数据,并把appium的命令转换成uiautomator的命令来让uiautomator进行处理;
最后,bootstrap处理的是从PC端传过来的命令,而非一个文件。
Android上使用了instrumentation和uiautomator两套技术
ios使用uiautomation
同时支持Firefox,并可扩展其他平台。
默认开启4723端口接收webdriver请求可,4723是appium服务,专门和脚本打交道;
默认开启4724,用于和Android设备通讯
新版本的appium Android增加了UIautoamator2的支持,iOS换成了XCUItest
capabilities是一些键值对的集合。客户端将键值对发送给appium服务端,用来告诉服务端怎样开始测试。
1.Appium启动时会创建一个http://127.0.0.1:4723/wd/hub服务端(相当于一个中转站)。通过4723和AppiumClient通信,4724和设备通信。
2.AppiumClient发送请求到AppiumServer,建立连接
4.AppiumServer找到设备并初始化(bootstrap.jar被发送到设备中,并执行测试)。
4.bootstrap.jar被执行,变成了Socket服务器,暴露4724接口,和PC端的4724端口进行通信。
5.AppiumServer作为Socket的客户端,将用例解析为一个个http请求,由boostrap转发给uiautomator执行。