appium入门(1)__ appium介绍

摘自:http://www.testclass.net/appium/appium-base-summary/java

一、特色

appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用。python

  •  “移动原生应用”是指那些用iOS或者 Android SDK 写的应用(Application简称app)。
  •  “移动web应用”是指使用移动浏览器访问的应用(appium支持iOS上的Safari和Android上的 Chrome)。
  •  “混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。好比,像 Phonegap,能够帮助开发者使用网页技术开发应用,而后用原生代码封装,这些就是混合应用。

重要的是,appium是一个跨平台的工具:它容许测试人员在不一样的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增长了iOS和Android测试套件间代码的复用性。git

二、appium与Selenium

appium类库封装了标准Selenium客户端类库,为用户提供全部常见的JSON格式selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向。github

appium客户端类库实现了Mobile JSON Wire Protocol(一个标准协议的官方扩展草稿)和W3C WebDriver spec(一个传输不可预知的自动化协议,该协议定义了MultiAction 接口)的元素。web

appium服务端定义了官方协议的扩展,为appium 用户提供了方便的接口来执行各类设备动做,例如在测试过程当中安装/卸载App。这就是为何咱们须要appium特定的客户端,而不是通用的Selenium 客户端。固然,appium 客户端类库只是增长了一些功能,而实际上这些功能就是简单的扩展了Selenium 客户端,因此他们仍然能够用来运行通用的Selenium会话。编程

三、支持多平台、多语言

appium是跨平台的,能够用在OSX,Windows以及Linux桌面系统上运行。设计模式

appium选择了Client/Server的设计模式。只要client可以发送http请求给server,那么的话client用什么语言来实现都是能够的,这就是appium及Selenium(WebDriver)如何作到支持多语言的缘由;浏览器

appium扩展了WebDriver的协议,没有本身从新去实现一套。这样的好处是之前的WebDriver API可以直接被继承过来,之前的Selenium(WebDriver)各类语言的binding均可以拿来就用,省去了为每种语言开发一个client的工做量;app

语言/框架框架

Github地址

Python

https://github.com/appium/python-client

Java

https://github.com/appium/java-client

 

四、appium工做原理

在安装和介绍appium以前,很是有必要介绍一下appium是如何工做的。

 

经过上面一张图简单展现了appium的工具原理。

首先,appium支持多语言,由于它针对流的几种语言分别开发的相应的appium库。好处就是咱们能够选择本身熟悉的语言编写appium脚本。

其次,appium支持多平台,包括MAC和Windows。它针对这两大平台开发了appium-Server。

最后,appium又同时支持Android 和 iOS两个操做系统。

这就使得appium变得很是灵活。

当我在MAC平台上,经过Python(python-client )编写了一个appium自动化脚本并执行,请求会首先到 appium.dum (MAC下的appium-Server),appium-Server经过解析,驱动iOS设备来执行appium自动化脚本。或者,我在Windows平台上,经过Java( java-client )编写了一个appium自动化脚本并执行,请求会首先到 appiumForWindow.zip(Window下的appium-Server),appium-Server经过解析,驱动Android虚拟机或真机来执行appium脚本。

因此,你会看到appium的强大之处就在于此。

五、你都须要安装什么?

  • 编程语言:  Python
  • appium client:  Appium-Python-client
  • appium Server
  • 测试运行环境

一个Android模拟器,或 一个 Android 手机,或 一台 iPhone 手机