Appium is an open source test automation framework for use with native, hybrid and mobile web apps. It drives iOS, Android, and Windows apps using the WebDriver protocol.php
Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。 它使用WebDriver协议驱动iOS,Android和Windows应用程序。前端
纸上谈兵终觉浅绝知此事要躬行,详见视频教程演示java
Appium是在手机操做系统自带的测试框架基础上实现的,Android和iOS的系统上使用的工具分别以下:python
咱们的电脑(client)上运行自动化测试脚本,调用的是webdriver的接口,appium server接收到咱们client上发送过来的命令后他会将这些命令转换为UIautomator认识的命令,而后由UIautomator来在设备上执行自动化。android
Appium的架构原理如上图所示,由客户端(Appium Client)和服务器(Appium Server)两部分组成,客户端与服务器端经过JSON Wire Protocol进行通讯。ios
Appium服务器是Appium框架的核心。它是一个基于Node.js实现的HTTP服务器。Appium服务器的主要功能是接受从Appium客户端发起的链接,监遵从客户端发送来的命令,将命令发送给bootstrap.jar(iOS手机为bootstrap.js)执行,并将命令的执行结果经过HTTP应答反馈给Appium客户端。git
Bootstrap.jar是在Android手机上运行的一个应用程序,它在手机上扮演TCP服务器的角色。当Appium服务器须要运行命令时,Appium服务器会与Bootstrap.jar创建TCP通讯,并把命令发送给Bootstrap.jar;Bootstrap.jar负责运行测试命令。github
它主要是指实现了Appium功能的WebDriver协议的客户端Library,它负责与Appium服务器创建链接,并将测试脚本的指令发送到Appium服务器。现有的客户端Library有多种语言的实现,包括Ruby、Python、Java、JavaScript(Node.js)、Object C、PHP和C#。Appium的测试是在这些Library的基础上进行开发的。web
Appium Server就是Appium的服务端——一个web接口服务,使用Node.js实现。引用官网解释说明。objective-c
Appium is a server written in Node.js. It can be built and installed from source or installed directly from NPM:
$ npm install -g appium
$ appium
Appium Desktop是一款适用于Mac,Windows和Linux的开源应用程序,它以美观而灵活的用户界面为您提供Appium自动化服务器的强大功能。 它是几个Appium相关工具的组合:
您可使用Inspector查看应用程序的元素,获取有关它们的基本信息,并与它们进行基本的交互。
Appium Desktop与Appium不一样。 Appium Desktop是Appium的图形前端,带有其余工具。 Appium Desktop以其本身的节奏发布,并拥有本身的版本控制系统。 就像国内不少定制的Android系统有本身版本号,可是都是基于一个Android系统版本封装的。版本号不必定与Andriod原生系统版本号一致。如:魅族的flyme6.0系统的内核是Android 5.1
Appium GUI是Appium desktop的前身。 这个也是把Appium server封装成了一个图形界面,下降使用门槛,如同最初的操做系统Dos都是敲命令,后面都是图形界面操做系统,如Windows系统。不少初学者对下面这个界面应该不陌生吧,这个就是Windows版本的Appium GUI界面。测试人员能够手动启动,配置相关server 服务,若是不用这个启动的话,须要命令启动服务。由于大部分教程都是基于这个GUI来说解的,因此不少人一说Appium就认为是这个。
该产品的Windows版本在2015年的AppiumForWindows_1_4_16_1.zip以后就中止更新了。目前版本可使用,可是封装的不是最新的Appium版本,而是1.4.16版本。若是要使用最新的桌面版须要使用Appium Desktop。
由于Appium是一个C/S结构,有了服务端的确定还有客户端,Appium Clients就是客户端,它会给服务端Appium Server发送请求会话来执行自动化任务。就像咱们浏览器访问网页,浏览器是客户端,经过操做发送请求服务器来获取数据。咱们可使用不一样的客户端浏览器(IE,Firefox,Chrome)访问一个网站。 Appium客户端可使用不一样的语言来实现,如Python,java等。具体详见下表:
Language/Framework |
Github Repo and Installation Instructions |
Ruby |
|
Python |
|
Java |
|
JavaScript (Node.js) |
|
Objective C |
|
PHP |
|
C# (.NET) |
|
RobotFramework |
Appium-desktop主界面包含三个菜单Simple,Advanced、Presets
设置Appium server的ip地址,本地调试能够将ip地址修改成127.0.0.1
设置端口号,默认是4723不用修改
启动 Appium server
高级参数配置修改,主要是一些Android和iOS设备,log路径等相关信息的配置。
将Advanced中的一些配置信息做为预设配置。
启动后控制台提示以下信息,表示Appium启动成功。
[Appium] Welcome to Appium v1.7.2
[Appium] Non-default server args:
[Appium] address: 127.0.0.1
[Appium] Appium REST http interface listener started on 127.0.0.1:4723