手机App分两大类:原生APP(Native App)和混合APP(Hybrid App)web
原生APP(Native App)设计模式
实际就是咱们所常见的传统App开发模式,云端数据存储 + APP应用客户端。App应用客户端,包含了全部的UI元素、框架逻辑等。只有数据存储在云端。api
混合APP(Hybrid App)浏览器
就是HTML5 App,混合App一般由两部分组成,HTML5云网站 + App应用客户端,这里的App应用客户端实际只是个架子,里面的UI元素和逻辑,都是存储在云端的,每次在打开App时,去云端获取数据呈现给手机用户。说白了,混合App就是将Web页面嵌套到了App应用客户端中。因为每次打开App都要向HTML云端服务请求数据,因此会产生不小的数据流量,而且若是没有网络,会致使没法看到HTML App。这就是常说的H5页面。网络
Appium介绍app
是一个开源、跨平台的自动化测试框架,它适用于原生APP 和 混合APP。框架
Appium有个比较好的设计哲学,简单的说就是不要为了移动端自动化测试而单独开发一套API接口,因此appium也是基于selenium的webdriver进行了扩展,扩展了一些操做移动端的api接口,在咱们学习完selenium的api接口后,咱们在学习appium只须要学习扩展的那些操做移动端的api接口便可。工具
Appium最牛之处在于支持跨平台操做。实际上咱们在测试时是启动了一个Appium Server,这个Server能够放到任意的机器上,供公司的自动化测试人员共同使用。学习
Appium原理测试
Appium既然是基于selenium作的二次扩展,那么appium也是一个经典的Client-Server的设计模式,咱们的Code就是狭义的客户端,Server端与Selenium不一样,Selenium直接测试浏览器Web页面,将浏览器做为服务端。而Appium的服务端是咱们本身启动的Appium-Server。数据与操做命令传递与Selenium Api接口相同,遵照REST设计风格的Api接口。
Appium工做流
Appium跨平台
小贴士:平时咱们经过cnp安装的是纯appium-server,而经过appium-destop 装的是定位元素的工具,只不过是集成了appium-server。