appium介绍

官方网站:http://appium.io/

1、特点

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

“移动原生应用”是指那些用iOS或者 Android SDK 写的应用(Application简称app)。

“移动web应用”是指使用移动浏览器访问的应用(appium支持iOS上的Safari和Android上的 Chrome)。

“混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。比如,像 Phonegap,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。

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

2、appium与Selenium

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

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

appium服务端定义了官方协议的扩展,为appium

用户提供了方便的接口来执行各种设备动作,例如在测试过程中安装/卸载App。这就是为什么我们需要appium特定的客户端,而不是通用的Selenium

客户端。当然,appium 客户端类库只是增加了一些功能,而实际上这些功能就是简单的扩展了Selenium

客户端,所以他们仍然可以用来运行通用的Selenium会话。

3、支持多平台、多语言

appium是跨平台的,可以用在OSX,Windows以及Linux桌面系统上运行。

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

appium扩展了WebDriver的协议,没有自己重新去实现一套。这样的好处是以前的WebDriver

API能够直接被继承过来,以前的Selenium(WebDriver)各种语言的binding都可以拿来就用,省去了为每种语言开发一个client的工作量;

语言/框架Github地址

Rubyhttps://github.com/appium/ruby_lib

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

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

JavaScript (Node.js)https://github.com/admc/wd

Objective Chttps://github.com/appium/selenium-objective-c

PHPhttps://github.com/appium/php-client

C# (.NET)https://github.com/appium/appium-dotnet-driver

RobotFrameworkhttps://github.com/jollychang/robotframework-appiumlibrary

4、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的强大之处就在于此。

5、你都需要安装什么?

这才是你最关心的问题,使用appium都需要安装些什么才?其实,从appium工作原理你就应该知道需要装什么了。

编程语言

想用 Python 的同学,点这里

想用 Java 的同学,点这里

appium client

参考3、支持多平台、多语言的列表,根据你选择的语言来选择对应的 appium-client。

appium Server

参考4、appium工作原理的介绍,根据你的系统平台选择 对应的 appium-server。

测试运行环境

你需要一个Android模拟器,或 一个 Android 手机,或 一台 iPhone 手机。

更多相关文章

  1. UnityTips 新项目打开即为iOS或Android平台
  2. 开发者的惊喜福利,Swift将支持Android?
  3. Android(安卓)SDK 下载目录文件夹意义详解
  4. Android(安卓)Studio 开启支持 VectorDrawable
  5. 查看当前Android版本RemoteViews支持的UI对象
  6. 將 SDL整合至Android平台
  7. Android(安卓)gradle打包并自动上传
  8. Android各个版本的区别
  9. Android定制日历,支持周月切换,日期标记,农历显示,节假日

随机推荐

  1. Android(安卓)经典资料分享大家一起顶
  2. Android内核源码阅读---ashmem.c
  3. 两分钟彻底让你明白Android中onIntercept
  4. Android动态加载jar/dex
  5. 【Android(安卓)应用开发】Android资源文
  6. Android的一些常用命令提示符(cmd)指令
  7. 【Mark】Android(安卓)TextView属性详解
  8. Android中使用SAX方式解析XML文件
  9. Android消息处理系统原理简要概述
  10. Android介绍