Appium是在手机操作系统自带的测试框架基础上 实现的,Android和ios的系统上使用 的工具是:
- Android(版本>4.2):UIAutomator,Android4.2之后系统自带 的UI自动化测试工具。
- IOS:UIAutomation,IOS系统自带的UI自动化测试工具。
Appium的架构原理如图,由客户端和服务器两部分组成,客户端与服务器通过 JSON Wire协议进行通信:
Appium 在Android上基于UIAutomator实现了测试代理程序(Bootstrap.jar),在IOS上基于UIAutomation实现了测试的代理程序(Bootstrap.js)。当测试脚本运行时,每行webDriver的脚本都将转换成Appium的指令发送给Appium服务器,而Appium服务器将测试指令交给代理程序,由代理程序负责执行测试。比如脚本上的一个点击操作,在Appium服务器上都是touch指令,当指令发送到android系统上时,Android系统上的Bootstrap.jar会调用UIAutomator的方法实现点击操作;而当指令发送到IOS系统上时,IOS的Bootstrap.js将调用UIAutomation的方法实现点击操作。正因如此,同样的测试脚本可以实现夸平台运行。