简介
Appium是一个开源自动化测试工具,用于在IOS移动平台、Android移动平台和Windows桌面平台上自动化本地、移动Web和混合应用程序。本机应用程序是那些使用IOS、Android或Windows SDK编写的应用程序。移动网络应用是使用移动浏览器访问的web应用程序(Appium支持IOS上的Safari,支持Android上的Chrome或内置的“浏览器”应用程序)。混合应用程序在“WebDriver”上有一个包装器,支持与web内容交互的本机控件。
Appium是跨平台的,它允许您使用相同的API编写针对多个平台(IOS、Android、Windows)的测试。这使IOS、Android和Windows测试套件之间的代码重用成为可能。
Appium通过使用供应商提供的自动化框架进行封装后来满足测试需求。这样,我们就不需要在任何特定于Appium的代码或第三方代码或框架中为应用程序编译。
Appium使用的供应商提供的框架:
IOS 9.3及以上:苹果的XCUITest
IOS 9.3及更低版本:苹果的UIAutomation
Android 4.2+:谷歌的UiAutomator/UiAutomator 2
Android 2.3+:谷歌的Instrumentation(Instrumentation由单独的项目Selendroid提供支持)
Windows:微软的WinAppDriver
通过将供应商提供的框架封装在一个API中,WebDriver API。WebDriver(又名“Selenium WebDriver”)指定了一个客户端-服务端协议(称为JSON Wire Protocol),是一个传输方法,这个协议是一组特定的预定义和标准化的端点,它通过REST API去展现。目的就是为了通过浏览器(Chrome、Firefox等)去测试Web站点,Appium继承了移动JSON Wire Protocol协议并进行扩展,它可以控制不同的移动设备的行为,比如通过Session安装和卸载App等。
例如:
·/session/:sessionId - Session的ID唯一标识符
·/session/:sessionId/element –找一个元素
·/session/:sessionId/elements –找一组元素
·/session/:sessionId/element/:id/click –通过id找到元素之后点击元素
·/session/:sessionId/source –获取页面源码
·/session/:sessionId/url –获取页面url
·/session/:sessionId/timeouts/implicit_wait –隐性等待
Appium概念:
1、客户端/服务端体系结构
Appium的核心是一个提供REST API的Web服务器。它接收来自客户端的连接,侦听命令,在移动设备上执行这些命令,并使用HTTP响应进行响应,表示命令执行的结果。
架构图:

2、Session
自动化总是在会话中执行的。客户端以特定于每个库的方式与服务端进行会话,但最终都会向服务端发送一个POST /session对服务端的请求,使用一个名为“desired capabilities”的JSON对象。此时服务器将启动自动化会话,并使用一个用于发送进一步命令的会话ID进行响应。
3、Desired Capabilities
Desired capabilities是发送到Appium服务端的一组键和值(即映射或哈希),以告诉服务端我们感兴趣的是哪种类型的自动化会话。例如,我们可以将PlatformName功能设置为IOS,以告诉Appium我们需要一个IOS会话,而不是Android或Windows会话。
4、Appium Server
Appium是用Node.js编写的服务端。它可以从源代码构建和安装,也可以直接从NPM安装:
$ npm install -g appium
$ appium
5、Appium Clients
Appium的客户端库(支持Java、Ruby、Python、PHP、JavaScript和C#),它们支持Appium对WebDriver协议的扩展。
下载地址:http://appium.io/downloads.html

6、Appium Desktop
Appium Desktop是在Appium Server上封装成一个有图形界面的服务端,可以在任何平台下载安装。它与运行Appium Server所需的所有内容捆绑在一起,因此不需要担心Node环境。它还附带了一个检查器,用来查看应用程序的层次结构等。在编写测试时,这会派上用场。
下载地址:http://appium.io/downloads.html

更多Appium的资料可以访问官方网址查阅:http://appium.io/
- End -
本文分享自 AllTests软件测试 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!