Appium简介
Appium 介绍
Appium是前最热门的、做app自动化测试使用人数最多的一款主要应用于移动端的自动化测试框架,开源,支持原生、移动 Web 和混合应用。
原生应用:指那些用 iOS、 Android 或者 Windows SDKs 编写的应用。
移动web应用:是用移动端浏览器访问的应用( Appium 支持 iOS 上的 Safari 、Chrome 和 Android 上的内置浏览器)
混合应用:带有一个「webview」的包装器——用来和 Web 内容交互的原生控件(以JS+Native两者相互调用为主,使用 Web 技术开发然后打包进原生包装器)
Appium优势
- 跨平台:允许你用同样的 API 对多平台(iOS、Android、Windows)写测试。做到在 iOS、Android 和 Windows 测试套件之间复用代码。
- 多语言:Python、Java、Ruby、PHP、JavaScript 和 C# 等等
- 如果你有selenium经验,直接上手。
Appium 的组件
客户端 / 服务器架构
Appium 的核心一个是暴露 REST API 的 WEB 服务器。它接受来自客户端的连接,监听命令并在移动设备上执行,答复 HTTP 响应来描述执行结果。
会话(Session)
自动化始终在一个会话的上下文中执行,这些客户端程序库以各自的方式发起与服务器的会话,但最终都会发给服务器一个 POST /session
请求,请求中包含一个被称作「预期能力(Desired Capabilities)」的 JSON 对象。这时服务器就会开启这个自动化会话,并返回一个用于发送后续命令的会话 ID。
Desired Capabilities
是一些发送给 Appium 服务器的键值对集合(比如 map 或 hash),它告诉服务器我们想要启动什么类型的自动化会话。可以修改服务器在自动化过程中行为。例如,我们可以将 platformName
能力设置为 Android
,以告诉 Appium 我们想要 Android
会话,而不是 IOS 或者 Windows 会话。或者我们也可以设置 safariAllowPopups
能力为 true
,确保我们在 Safari 自动化会话期间可以使用 JavaScript 打开新窗口
Appium 服务器
Appium 是一个用 Node.js 写的服务器。可以从源码构建安装或者从 NPM 直接安装,例如:npm install -g appium
Appium 客户端
因为Appium是一个C/S结构,有了服务端的肯定还有客户端,Appium Clients就是客户端,它会给服务端Appium Server发送请求会话来执行自动化任务。就像我们浏览器访问网页,浏览器是客户端,通过操作发送请求服务器来获取数据。我们可以使用不同的客户端浏览器(IE,Firefox,Chrome)访问一个网站。 Appium客户端可以使用不同的语言来实现,如Python,java等。
Appium Desktop
1、是一个 Appium 服务器的图形界面,它适用于任何平台。它打包了 Appium 服务器运行需要的所有东西。
2、提供一个 Inspector 查看应用程序的界面元素,通过元素可以进行ui界面定位,实现自动化测试操作。
Appium GUI
Appium GUI是Appium desktop的前身。 也是把Appium server封装成了一个图形界面,降低使用门槛。
该产品的Windows版本在2015年的AppiumForWindows_1_4_16_1.zip之后就停止更新了。目前版本可以使用,但是封装的不是最新的Appium版本,而是1.4.16版本。如果要使用最新的桌面版需要使用Appium Desktop。
搭建appium环境时需要使用到以上部分组件。